Python Django Rest框架:@detail\u路由和@list\u路由同名

Python Django Rest框架:@detail\u路由和@list\u路由同名,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有一个DRF视图集,希望提供详细信息并列出同名的路线: class MyViewSet(ViewSet): # ... @detail_route(['post']) def do_stuff(self, request, *args, **kwargs): pass @list_route(['post']) def do_stuff(self, request, *args, **kwargs): pass 这显

我有一个DRF视图集,希望提供详细信息并列出同名的路线:

class MyViewSet(ViewSet):
    # ...

    @detail_route(['post'])
    def do_stuff(self, request, *args, **kwargs):
        pass

    @list_route(['post'])
    def do_stuff(self, request, *args, **kwargs):
        pass
这显然不起作用,因为
列表\u路线
只会覆盖
细节\u路线


有没有一种简单的方法可以同时提供两个路由而不提供?

我不确定这是否是您想要的,您可以为这两个路由设置相同的url路径名:

class MyViewSet(ViewSet):
    # ...

    @detail_route(['post'], url_path='do_stuff')
    def do_stuff_detail(self, request, *args, **kwargs):
        pass

    @list_route(['post'], url_path='do_stuff')
    def do_stuff_list(self, request, *args, **kwargs):
        pass

在第一个例子中,url将是../“id”/do_stuff,在第二个例子中,../do_stuff

简短回答:不,对不起。如果你想要一个列表视图和一个同名的详细视图,为其创建一个单独的视图集是有意义的。@HåkenLid,你能用一个例子重新发布这个答案吗?谢谢!要求DRF>=1.8,否则您会收到
接收到的无效关键字“url\u path”