From c05cbe2da213ae6fef5ea66dbafb050b76923117 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 10 Mar 2021 12:50:59 +0000 Subject: [PATCH] Update pagination.py Include `last_page_strings` logic *inside* the `get_page_number method. --- rest_framework/pagination.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 0f0aa9ccf..87ff7d3d6 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -199,8 +199,6 @@ class PageNumberPagination(BasePagination): paginator = self.django_paginator_class(queryset, page_size) page_number = self.get_page_number(request) - if page_number in self.last_page_strings: - page_number = paginator.num_pages try: self.page = paginator.page(page_number) @@ -218,7 +216,10 @@ class PageNumberPagination(BasePagination): return list(self.page) def get_page_number(self, request): - return request.query_params.get(self.page_query_param, 1) + page_number = request.query_params.get(self.page_query_param, 1) + if page_number in self.last_page_strings: + page_number = paginator.num_pages + return page_number def get_paginated_response(self, data): return Response(OrderedDict([