我有一个针对每个用户的产品评级视图集:
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 操作
您可以在
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>/