Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django rest页码分页_Python_Django_Pagination_Django Rest Framework - Fatal编程技术网

Python 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

我有一个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 = 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))