gpt4 book ai didi

python - 如何在 Django-rest-framework View 集上允许复杂的 URL

转载 作者:太空宇宙 更新时间:2023-11-03 17:59:22 24 4
gpt4 key购买 nike

我有一个 Scheme View 集,其中有一个名为 optimize 的详细路线。定义如下:

@detail_route(methods=['get’])        
def optimize(self, request, pk=None):
pass

我使用 DefaultRouter() 生成 URL,最终为 /schemes/:id/optimize。我想在我的 View 集上有第二种方法,在特定位置运行优化,因此 url 可能看起来像 /schemes/:id/optimize_by_location/:id

如何在我的 View 中设置此功能,其中路线有 2 个级别?

最佳答案

我认为默认路由器不可能做到这一点。所以你应该:

  • implement a custom router (或使用第三方包)
  • 或手动注册您的 /schemes/:id/optimize_by_location/:id 网址(可能更简单,但不太通用):

有关此内容的更多信息,请参见 django Rest 教程:Binding ViewSets to URLs explicitly

    from django.conf.urls import patterns, url
from .views import MyViewSet

optimize_view = MyViewSet.as_view({'get': 'optimize_specific_location'},)
urlpatterns = [
url(r'^schemes/(?P<id>[0-9]+)/optimize_by_location/(?P<loc_id>[0-9]+)/$',
optimize_view),
]

关于python - 如何在 Django-rest-framework View 集上允许复杂的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27985190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com