【发布时间】:2019-09-10 11:13:45
【问题描述】:
我正在尝试设置一个返回单个对象的 API 端点。
现在我有:
class ShoppingCartViewSet(viewsets.GenericViewSet, mixins.ListModelMixin):
"""
API endpoint that allows users to be viewed or edited.
"""
serializer_class = ShoppingCartSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
def get_paginated_response(self, data):
return Response(data)
def get_queryset(self):
return ShoppingCart.objects.filter(user=self.request.user)
使用ListModelMixin 和过滤器返回一件商品,因为每个用户都有1 个购物车。
问题是filter 函数返回一个查询集,但我只想要一个项目。
我尝试使用RetrieveModelMixin,但它没有在我想要的端点上运行。检索在.../api/shopping-cart/id 上运行,但我想在.../api/shopping-cart 上检索,因为过滤是通过登录的人完成的。
有什么解决办法吗?
【问题讨论】:
标签: django django-rest-framework mixins django-rest-viewsets