Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django rest framework视图集上允许复杂URL_Python_Django_Rest_Django Rest Framework - Fatal编程技术网

Python 如何在Django rest framework视图集上允许复杂URL

Python 如何在Django rest framework视图集上允许复杂URL,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,我有一个方案视图集,带有一个名为优化的详细路线。定义如下: @detail_route(methods=['get’]) def optimize(self, request, pk=None): pass 我正在使用DefaultRouter()生成URL,结果是/schemes/:id/optimize。我想在我的视图集中有一个在特定位置运行优化的第二个方法,因此url可能看起来像/schemes/:id/optimize\u by\u location/:id 如

我有一个
方案
视图集,带有一个名为
优化
的详细路线。定义如下:

@detail_route(methods=['get’])        
def optimize(self, request, pk=None):
    pass
我正在使用
DefaultRouter()
生成URL,结果是
/schemes/:id/optimize
。我想在我的视图集中有一个在特定位置运行优化的第二个方法,因此url可能看起来像
/schemes/:id/optimize\u by\u location/:id


如何在我的视图中设置此功能,其中路由有两个级别?

我认为默认路由器不可能。所以你应该:

  • (或使用第三方软件包)
  • 或者手动注册您的
    /schemes/:id/optimize\u by\u location/:id
    url(可能更简单但不太通用):
在django rest教程中了解更多信息:

来自django.conf.url导入模式,url
从.views导入MyViewSet
optimize_view=MyViewSet.as_view({'get':'optimize_-specific_-location'},)
URL模式=[
url(r'^schemes/(?P[0-9]+)/按位置优化/(?P[0-9]+)/$”,
优化视图),
]
    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),
    ]