视图集方法的 DRF 自定义 url

问题描述 投票:0回答:1

我有一个针对每个用户的产品评级视图集:

class RatingViewSet(viewsets.ModelViewSet):
    queryset = models.Rating.objects.all()
    serializer_class = serializers.RatingSerializer

    # @action(detail=False, methods=['get'], url_path=r'(?P<user>\d+)/(?P<pizza>\d+)/')
    @action(detail=False, methods=['get'], url_path=r'<int:user>/<int:pizza>')
    def get_user_pizza_rating(self, request, *args, **kwargs):

如何定义调用此方法的 url

drf 自定义 url 操作

django django-rest-framework django-views django-urls
1个回答
0
投票

您可以在

url_path
参数的开头添加它

class RatingViewSet(viewsets.ModelViewSet):
    queryset = models.Rating.objects.all()
    serializer_class = serializers.RatingSerializer

    @action(detail=False, methods=['get'], url_path=r'get_user_pizza_rating/(?P<user>\d+)/(?P<pizza>\d+)')
    def get_user_pizza_rating(self, request, user, pizza):
        ...

所以如果你的

RatingViewSet
有路径
/api/ratings/
,你可以用url获取你的方法
/api/ratings/get_user_pizza_rating/<user>/<pizza>/

© www.soinside.com 2019 - 2024. All rights reserved.