Как я могу получить Json записей со всех страниц с Django Rest Framework? - PullRequest
0 голосов
/ 16 января 2020

Я создал конечную точку API с Django Rest Framework. Сейчас я запрашиваю эту конечную точку из скрипта Jquery. Проблема в том, что после отправки запроса DRF вернет данные Json только с первой страницы моей конечной точки API. Как я могу настроить его на получение всех данных?

Вот мой взгляд:

class tstList(generics.ListCreateAPIView):
    queryset = tst.objects.all()
    serializer_class = tstSerializer
    filter_backends = [DjangoFilterBackend]

Мой сериализатор:

class tstSerializer(serializers.ModelSerializer):
    class Meta:
        model = tst
        fields = ('Amount', 'Perc')

    def create(self, validated_data):
        return tst.objects.create(**validated_data)

Я запрашиваю конечная точка этого URL: http://127.0.0.1:8000/tst

Ответы [ 2 ]

1 голос
/ 16 января 2020

Чтение Документы по разбиению на страницы DRF , так что вы понимаете настройки по умолчанию, которые он добавляет к вашему проекту settings.py.

Если pagaingtion все еще полезен для вас, но вы просто хотите отключить его для некоторых views

попробуйте создать что-то вроде этого

class UnlimitedPagination(pagination.PageNumberPagination):
    page_size = 0

, также я рекомендую создать файл paganation.py в вашем проекте и поместить в него вышеуказанный класс

Затем import UnlimitedPagination класс от paganation.py и используйте его в своем представлении

pagination_class = UnlimitedPagination
0 голосов
/ 16 января 2020

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

class tstList(generics.ListCreateAPIView):
    queryset = tst.objects.all()
    serializer_class = tstSerializer
    filter_backends = [DjangoFilterBackend]
    pagination_class = None
...