From 5f24aeb829251840e0d844b6c57a6085d84b931d Mon Sep 17 00:00:00 2001 From: Steve Lacey Date: Fri, 27 Feb 2015 17:43:04 +0000 Subject: [PATCH] Moved get_first/last_link methods out to PageNumberPaginator --- rest_framework/pagination.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 496500ba5..7d0e4057a 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -287,12 +287,11 @@ class PageNumberPagination(BasePagination): return self.paginate_by - def get_next_link(self): - if not self.page.has_next(): + def get_first_link(self): + if not self.page.has_previous(): return None url = self.request.build_absolute_uri() - page_number = self.page.next_page_number() - return replace_query_param(url, self.page_query_param, page_number) + return remove_query_param(url, self.page_query_param) def get_previous_link(self): if not self.page.has_previous(): @@ -303,6 +302,20 @@ class PageNumberPagination(BasePagination): return remove_query_param(url, self.page_query_param) return replace_query_param(url, self.page_query_param, page_number) + def get_next_link(self): + if not self.page.has_next(): + return None + url = self.request.build_absolute_uri() + page_number = self.page.next_page_number() + return replace_query_param(url, self.page_query_param, page_number) + + def get_last_link(self): + if not self.page.has_next(): + return None + url = self.request.build_absolute_uri() + page_number = self.page.paginator.num_pages + return replace_query_param(url, self.page_query_param, page_number) + def get_html_context(self): base_url = self.request.build_absolute_uri()