繁体   English   中英

如何在Django-rest-framework视图集上允许使用复杂的URL

[英]How to allow for complex URLs on a Django-rest-framework viewset

我有一个“ Scheme视图集,其中有一条称为optimize的详细路线。 定义如下所示:

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

我正在使用DefaultRouter()生成URL,该URL最终是/schemes/:id/optimize 我想在我的视图集上使用第二种方法在特定位置上运行优化,因此该URL可能类似于/schemes/:id/optimize_by_location/:id

如何在我的视图中设置此功能,该视图有2层路线?

我认为使用默认路由器是不可能的。 因此,您应该:

  • 实施自定义路由器 (或使用第三方程序包)
  • 或手动注册/schemes/:id/optimize_by_location/:id网址(可能更简单,但通用性较低):

在Django Rest教程中有关此的更多信息:将ViewSet明确绑定到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),
    ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM