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()