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),
]
)
)