Paginator не показывает соответствующий результат - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу показать только 5 результатов и следующие 5 на другой странице. my view.py

class QuestionList(APIView):

    def get(self, request, *args, **kwargs):
        res = Question.objects.all()

        paginator = Paginator(res, 5)
        serializer = QuestionSerializers(res, many=True)
        return Response({"Section": serializer.data})

как будет работать мой пагинатор?

1 Ответ

1 голос
/ 04 февраля 2020

Django -рест обеспечивает свой метод нумерации страниц. Вы должны использовать это вместо того, чтобы строить свой собственный. Вы можете найти его документы здесь .

Вам просто нужно добавить следующие настройки в свои настройки.

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
    'PAGE_SIZE': 100
}

Данные в ListApiView будут разбиты на страницы. В вашем текущем представлении

class QuestionList(APIView):

    def get(self, request, *args, **kwargs):
        res = Question.objects.all()

        page = self.paginate_queryset(res)
        serialized = QuestionSerializers(page, many=True)
        return self.get_paginated_response(serialized.data)
...