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
如何在我的视图中设置此功能,其中路由有两个级别?我认为默认路由器不可能。所以你应该:
- (或使用第三方软件包)
- 或者手动注册您的
url(可能更简单但不太通用):/schemes/:id/optimize\u by\u location/:id
来自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),
]