gpt4 book ai didi

python - 对 List 和 Retrieve Rest API 使用一个基于类的 View

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:13 25 4
gpt4 key购买 nike

我目前有两个不同的基于类的 View ,用于详细说明特定对象和列出所有对象:

class StatusList(ListAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = serializers.StatusSerializer

def get_queryset(self):
queryset = helperfunctions.getObjects(self.request.user, models.Status)
return queryset


class StatusDetail(RetrieveAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = serializers.StatusSerializer

def get_queryset(self):
queryset = helperfunctions.getObjects(self.request.user, models.Status)
return queryset

请注意,helperfunctions.getObjects() 只是返回与用户共享同一机构的对象,这样他们就看不到他们不应该看到的状态。

我想知道的是是否有一个选项可以只对 StatusDetail 和 StatusList 使用一个基于类的 View ,它会自动知道当它在 get 请求中获得 pk 时它返回适当的对象,而当它没有时',它应该返回整个对象列表。

感谢您的帮助:)

最佳答案

使用viewsets , 像这样:

from rest_framework import viewsets, permissions, mixins    
class StatusDetail(mixins.ListModelMixin, #specify wanted mixins
mixins.RetrieveModelMixin,
viewsets.GenericViewSet):
permission_classes = (IsAuthenticated,)
serializer_class = serializers.StatusSerializer

def get_queryset(self):
queryset = helperfunctions.getObjects(self.request.user, models.Status)
return queryset

关于python - 对 List 和 Retrieve Rest API 使用一个基于类的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com