Extracted page_size logic into get_page_number to allow overloading

This commit is contained in:
Artem Skoretskiy 2019-06-21 11:58:51 +02:00
parent 72de94a05d
commit 345fd7df6c

View File

@ -195,9 +195,7 @@ class PageNumberPagination(BasePagination):
return None return None
paginator = self.django_paginator_class(queryset, page_size) paginator = self.django_paginator_class(queryset, page_size)
page_number = request.query_params.get(self.page_query_param, 1) page_number = self.get_page_number(request, paginator)
if page_number in self.last_page_strings:
page_number = paginator.num_pages
try: try:
self.page = paginator.page(page_number) self.page = paginator.page(page_number)
@ -235,6 +233,12 @@ class PageNumberPagination(BasePagination):
return self.page_size return self.page_size
def get_page_number(self, request, paginator):
page_number = request.query_params.get(self.page_query_param, 1)
if page_number in self.last_page_strings:
return paginator.num_pages
return page_number
def get_next_link(self): def get_next_link(self):
if not self.page.has_next(): if not self.page.has_next():
return None return None