Pab*_*ada 2 python django pagination django-rest-framework
我有一个简单的 django rest 框架的 Pagination 类:
class StandardResultsSetPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'page_size'
max_page_size = 1000
# Create your views here.
class ResultSet(generics.ListAPIView):
queryset = Result.objects.all()
serializer_class = ResultSetSerializer
pagination_class = StandardResultsSetPagination
Run Code Online (Sandbox Code Playgroud)
此类当前返回一个带有'prev'和'next'键的字典,其中包含带有下一页和上一页的 URL。我想要实现的是'prev'和'next'只返回页码而不是整个 URL。
我怎样才能做到这一点?
您可以覆盖get_next_link和get_previous_linkPageNumberPagination 默认为:
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_previous_link(self):
if not self.page.has_previous():
return None
url = self.request.build_absolute_uri()
page_number = self.page.previous_page_number()
if page_number == 1:
return remove_query_param(url, self.page_query_param)
return replace_query_param(url, self.page_query_param, page_number)
Run Code Online (Sandbox Code Playgroud)
您可以覆盖:
class StandardResultsSetPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'page_size'
max_page_size = 1000
def get_next_link(self):
if not self.page.has_next():
return None
page_number = self.page.next_page_number()
return page_number
def get_previous_link(self):
if not self.page.has_previous():
return None
page_number = self.page.previous_page_number()
return page_number
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |