def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
if (queryset some condition): # here you can send data without paginate or in else it will automatically paginate the result
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
else:
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
2条答案
按热度按时间zpjtge221#
我没有完全理解你的问题
但我想我可以让你明白。
如果不使用
paginate_queryset
方法,特别是ModelViewSet
或ReadOnlyViewSet
、ListCreateAPIView
、ListAPIView
、ListModelMixin
等类,则可以从视图中删除分页您可以使用
APIView
或GenericAPIView
并定义get方法,然后将您的逻辑放在那里而不分页v440hwme2#