Настройка нумерации страниц для метода списка в наборе Django Rest framework - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть Viewset, который имеет следующий список метод:

class PolicyViewSet(viewsets.ViewSet):
    def list(self, request):
        queryset = Policy.objects.all()
        serializer = PolicySerializer(queryset, many=True)
        return Response(serializer.data)

Это работает, как задумано, и я получаю желаемый ответ. Однако теперь я пытаюсь ограничить объектывозвращается за GET запрос и для этого я использую нумерацию страниц. Я определил следующее в settings.py:

REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 20

}

Документы говорят:

Разбивка на страницы выполняется автоматически только в том случае, если вы используете общие представления или наборы видов.

Однако мой результат все еще не разбит на страницы. Что еще мне нужно сделать, чтобывключить нумерацию страниц?

1 Ответ

0 голосов
/ 07 февраля 2019

Если вы перезаписываете свой список или любой другой основной метод, вам необходимо явно вызвать его.

class PolicyViewSet( viewsets.GenericViewset):
    def list(self, request):
        queryset = Policy.objects.all()
        page = self.paginate_queryset(queryset)
        serializer = PolicySerializer(page, many=True)
        return self.get_paginated_response(serializer.data)
...