From 924eb37318e1e264383e92023cede22d59993052 Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Wed, 16 Nov 2022 20:10:36 +0100 Subject: [PATCH] Define request at start of pagination entrypoint --- rest_framework/pagination.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 776d74ddb..50e5aaacb 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -195,6 +195,7 @@ class PageNumberPagination(BasePagination): Paginate a queryset if required, either returning a page object, or `None` if pagination is not configured for this view. """ + self.request = request page_size = self.get_page_size(request) if not page_size: return None @@ -214,7 +215,6 @@ class PageNumberPagination(BasePagination): # The browsable API should display pagination controls. self.display_page_controls = True - self.request = request return list(self.page) def get_page_number(self, request, paginator): @@ -379,13 +379,13 @@ class LimitOffsetPagination(BasePagination): template = 'rest_framework/pagination/numbers.html' def paginate_queryset(self, queryset, request, view=None): + self.request = request self.limit = self.get_limit(request) if self.limit is None: return None self.count = self.get_count(queryset) self.offset = self.get_offset(request) - self.request = request if self.count > self.limit and self.template is not None: self.display_page_controls = True @@ -599,11 +599,11 @@ class CursorPagination(BasePagination): offset_cutoff = 1000 def paginate_queryset(self, queryset, request, view=None): + self.request = request self.page_size = self.get_page_size(request) if not self.page_size: return None - self.request = request self.base_url = request.build_absolute_uri() self.ordering = self.get_ordering(request, queryset, view)