From 8ed5b1e70e2c35dad037bb1afcd2c4c8da7a6f6d Mon Sep 17 00:00:00 2001 From: Paul Wayper Date: Wed, 4 Nov 2020 12:02:10 +1100 Subject: [PATCH] Allow 'get_page' method for overriding Signed-off-by: Paul Wayper --- rest_framework/pagination.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 60a57c8e4..c61794e23 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -198,7 +198,7 @@ class PageNumberPagination(BasePagination): return None paginator = self.django_paginator_class(queryset, page_size) - page_number = request.query_params.get(self.page_query_param, 1) + page_number = self.get_page(request) if page_number in self.last_page_strings: page_number = paginator.num_pages @@ -264,6 +264,12 @@ class PageNumberPagination(BasePagination): return self.page_size + def get_page(self, request): + return _positive_int( + request.query_params.get(self.page_query_param, 1), + strict=True, + ) + def get_next_link(self): if not self.page.has_next(): return None