Python 2.7 &引用;获取“分页”的“响应”;在django rest框架3.0中
在DRF 3.1中,我可以这样做以获得分页响应,但似乎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)
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)