Python Django rest页码分页
我有一个django rest框架的简单分页类:Python Django rest页码分页,python,django,pagination,django-rest-framework,Python,Django,Pagination,Django Rest Framework,我有一个django rest框架的简单分页类: 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 = R
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
该类当前返回一个dict,其中包含'prev'
和'next'
键,该键包含带有下一页和上一页的URL。我想要实现的是,'prev'
和'next'
只返回页码,而不是整个URL
如何实现这一点?您可以覆盖PageNumberPagination的
获取下一个链接
和获取上一个链接
默认值为:
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)
您可以覆盖:
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
@如何将上一个重命名为上一个??钥匙name@giveJob要重命名为previous,请重写函数get_paginated_response,如:
def get_paginated_response(self,data):返回响应(OrderedDict([('count',self.page.paginator.count),('next',self.get_next_link()),('prev',self.get_previous link()),('results',data))