我有一个DRF ViewSet,并希望提供一个详细信息并列出具有相同名称的路径:
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
这显然不起作用,因为list_route
只会覆盖detail_route
。
是否有一种简单的方法可以提供没有manually messing up with the urls的两条路线?
答案 0 :(得分:5)
我不确定这是你在找什么,你可以为两者设置相同的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
在第一个中,网址为../"id"/do_stuff,在第二个中,.. / do_stuff