我有一个Scheme
视图集,其中包含一个名为optimize
的详细路径。定义如下:
@detail_route(methods=['get’])
def optimize(self, request, pk=None):
pass
我使用DefaultRouter()
来生成URL,它最终是/schemes/:id/optimize
。我希望在我的视图集中有第二个方法,在特定的位置上运行优化,所以url看起来可能类似于/schemes/:id/optimize_by_location/:id
。
如何在我的视图中设置这个函数,其中有两个层次的路径?
发布于 2015-01-16 07:16:21
我认为使用默认路由器是不可能的。所以你应该:
/schemes/:id/optimize_by_location/:id
url (可能更容易,但不那么通用):关于此的更多信息,请参见django rest教程:显式地将ViewSets绑定到URL
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),
]
https://stackoverflow.com/questions/27985190
复制相似问题