小编use*_*673的帖子

Django Rest框架 - APIView分页

我有一个非常简单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)

python django pagination django-rest-framework

15
推荐指数
4
解决办法
7798
查看次数