我在我的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)

此代码创建网址:
/companies/
/companies/{id}
/companies/{id}/accounts

我不知道如何向明细帐户添加路线/ View :
/companies/{id}/accounts/{id_account}

有什么方法可以添加路线和 View 来处理此路线吗?

(最好的选择是将其添加到CompanyViewSet上)

干杯,

最佳答案

DRF不能单独处理嵌套路由,您可以手动处理它,也可以使用扩展名(例如drf-nested-routers),但它已经过时了。

我的建议:不要与框架打交道,DRF不擅长使用带有URL嵌套的资源,请以另一种方式使用它。

关于Django Rest Framework-@detail_route的详细信息页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25921021/

10-10 04:32