首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何允许Django-rest-framework视图集上的复杂URL

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

Stack Overflow用户
提问于 2015-01-16 05:37:05
回答 1查看 896关注 0票数 1

我有一个Scheme视图集,其中包含一个名为optimize的详细路径。定义如下:

代码语言:javascript
运行
AI代码解释
复制
@detail_route(methods=['get])        
def optimize(self, request, pk=None):
    pass

我使用DefaultRouter()来生成URL,它最终是/schemes/:id/optimize。我希望在我的视图集中有第二个方法,在特定的位置上运行优化,所以url看起来可能类似于/schemes/:id/optimize_by_location/:id

如何在我的视图中设置这个函数,其中有两个层次的路径?

EN

回答 1

Stack Overflow用户

发布于 2015-01-16 07:16:21

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

  • 实现自定义路由器 (或使用第三方包)
  • 或者手动注册您的/schemes/:id/optimize_by_location/:id url (可能更容易,但不那么通用):

关于此的更多信息,请参见django rest教程:显式地将ViewSets绑定到URL

代码语言:javascript
运行
AI代码解释
复制
    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),
    ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27985190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档