我有一个非常简单APIView,但我不知道如何在这里设置分页.在这种情况下,我选择一个Event给定的pk,然后我得到所有NewsItems分配给它Event.
pagination_class = LimitOffsetPagination当我在开头定义queryset时,工作正常ListCreateAPIView,例如.queryset = Event.objects.all()但不是自定义get:
class EventNewsItems(APIView):
pagination_class = LimitOffsetPagination
def get(self, request, pk, format=None):
#user = request.user
event = Event.objects.get(pk=pk)
news = event.get_news_items().all()
serializer = NewsItemSerializer(news, many=True, context={'request':request})
response = Response(serializer.data, status=status.HTTP_200_OK)
return response
Run Code Online (Sandbox Code Playgroud)
解决了:
def get(self, request, pk, format=None):
#user = request.user
event = Event.objects.get(pk=pk)
news = event.get_news_items().all()
paginator = LimitOffsetPagination()
result_page = paginator.paginate_queryset(news, request)
serializer = NewsItemSerializer(result_page, many=True, context={'request':request}) …Run Code Online (Sandbox Code Playgroud)