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

Я создал пагинацию, которая не выдает запрос Count, как показано ниже, но этот код использует sys.maxsize, поэтому количество страниц составляет 461168601842738816, и если данных не существует, то выполняется raise NotFound("No data found for this page"). но как сделать так, чтобы next был пустым на странице, предшествующей этой?

Мне нужно определить, загружать ли следующую страницу с next или без next во фронтенде бесконечной прокрутки.

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),
                ]
            )
        )
Вернуться на верх