Django, DRF: Как запретить PageNumberPagination выдавать запрос на подсчет для всех страниц, кроме первой?

Как предотвратить выдачу запроса PageNumberPagination для всех страниц, кроме первой?

Мне удалось остановить выполнение запроса подсчета страниц, как показано ниже, но Как сделать так, чтобы не выдавались запросы на подсчет, кроме первой страницы (после страницы 1)?

class CustomPaginatorClass(Paginator):
    @cached_property
    def count(self):
        return sys.maxsize


class CustomPagination(PageNumberPagination):
    django_paginator_class = CustomPaginatorClass

    def paginate_queryset(self, queryset, request, view=None):
        page_size = self.get_page_size(request)
        if not page_size:
            return None

        paginator = self.django_paginator_class(queryset, page_size)
        page_number = int(self.get_page_number(request, paginator))

        data = super().paginate_queryset(queryset, request, view=view)
        if not data and page_number > 1:
            raise NotFound("No data found for this page")
        return data

    def get_paginated_response(self, data):
        return Response(
            OrderedDict(
                [
                    ("next", self.get_next_link()),
                    ("previous", self.get_previous_link()),
                    ("results", data),
                ]
            )
        )
Вернуться на верх