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