use*_*778 5 django routes detailview django-rest-framework
我在我的viewsets.ModelViewSet上使用@detail_route.
class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all()
serializer_class = serializers.CompanySerializer
@detail_route(methods=['get', ], permission_classes=[IsCompanyUserPermission, ])
def accounts(self, request, pk):
...
return Response(...)
# urls.py
router.register(r'companies', views.CompanyViewSet)
Run Code Online (Sandbox Code Playgroud)
这段代码创建了url:
/companies/
/companies/{id}
/companies/{id}/accounts
Run Code Online (Sandbox Code Playgroud)
我不知道如何添加路线/视图到详细帐户:
/companies/{id}/accounts/{id_account}
Run Code Online (Sandbox Code Playgroud)
有没有办法添加路由和视图来处理这条路线?
(最好的选择是在CompanyViewSet上添加)
干杯,
所以尽可能避免它......但有时嵌套资源或方法是有意义的
因此,对于您的情况,既要处理accounts/url,accounts/{account_id}又要定义另一个详细路由。
您已经定义了一个 for,accounts因此您只需添加另一个具有不同名称的函数,并确保添加url_path以便您可以获取account_id变量。
@detail_route(methods=['get', ], permission_classes=[IsCompanyUserPermission, ])
def accounts(self, request, pk):
...
return Response(...)
@detail_route(methods=['get', ], permission_classes=[IsCompanyUserPermission, ],
url_path='^queues/(?P<account_id>[0-9]+)')
def account_detail(self, request, pk, account_id):
...
return Response(...)
Run Code Online (Sandbox Code Playgroud)
这个答案以这个类似的答案作为参考
| 归档时间: |
|
| 查看次数: |
3152 次 |
| 最近记录: |