Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 2.7 &引用;获取“分页”的“响应”;在django rest框架3.0中_Python 2.7_Django Rest Framework - Fatal编程技术网

Python 2.7 &引用;获取“分页”的“响应”;在django rest框架3.0中

Python 2.7 &引用;获取“分页”的“响应”;在django rest框架3.0中,python-2.7,django-rest-framework,Python 2.7,Django Rest Framework,在DRF 3.1中,我可以这样做以获得分页响应,但似乎get_paginated_response()在3.0中不可用。等价物是什么 class NoteList(ListCreateAPIView): def list(self, request, *args, **kwargs): queryset = self.get_queryset() paged_queryset = self.paginate_queryset(queryset)

在DRF 3.1中,我可以这样做以获得分页响应,但似乎
get_paginated_response()
在3.0中不可用。等价物是什么

class NoteList(ListCreateAPIView):

    def list(self, request, *args, **kwargs):
        queryset = self.get_queryset()
        paged_queryset = self.paginate_queryset(queryset)
        serializer = NoteSerializer(paged_queryset, many=True)
        return self.get_paginated_response(serializer.data)

它是
分页序列化程序
,通过以下方式设置序列化程序类:

“默认分页序列化程序类”:“YourCustomPaginationSerializer”

mixin.py

def list(self, request, *args, **kwargs):
    instance = self.filter_queryset(self.get_queryset())
    page = self.paginate_queryset(instance)
    if page is not None:
        serializer = self.get_pagination_serializer(page)
    else:
        serializer = self.get_serializer(instance, many=True)
    return Response(serializer.data)
generics.py

def get_pagination_serializer(self, page):
    """
    Return a serializer instance to use with paginated data.
    """
    class SerializerClass(self.pagination_serializer_class):
        class Meta:
            object_serializer_class = self.get_serializer_class()

    pagination_serializer_class = SerializerClass
    context = self.get_serializer_context()
    return pagination_serializer_class(instance=page, context=context)
如果正在执行
迁移
操作,请不要忘记settings.py或View中的分页参数已更改为new paginator

比如。按参数分页->页面大小查询参数

无论如何,我认为新的分页器比前一个要舒服得多。 请参阅上的更多详细信息

def get_pagination_serializer(self, page):
    """
    Return a serializer instance to use with paginated data.
    """
    class SerializerClass(self.pagination_serializer_class):
        class Meta:
            object_serializer_class = self.get_serializer_class()

    pagination_serializer_class = SerializerClass
    context = self.get_serializer_context()
    return pagination_serializer_class(instance=page, context=context)