@detail_路由在django rest框架中无法分页
我可以使用@detail_路由器的分页吗@detail_路由在django rest框架中无法分页,django,pagination,django-rest-framework,Django,Pagination,Django Rest Framework,我可以使用@detail_路由器的分页吗 class GroupViewSet(viewsets.ReadOnlyModelViewSet): """ Group View Set """ queryset = Group.objects.all() serializer_class = GroupSerializer pagination_class = StandardResultsSetPagination @detail_rout
class GroupViewSet(viewsets.ReadOnlyModelViewSet):
"""
Group View Set
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
pagination_class = StandardResultsSetPagination
@detail_route()
def user(self, request, pk=None):
_group = self.get_object()
users_post = _group.user_set.all()
page = self.paginate_queryset(users_post)
if page is not None:
serializers = UserSerializer(users_post, many=True, context={'request': request})
return self.get_paginated_response(serializers.data)
serializers = UserSerializer(users_post, many=True, context={'request': request})
return Response(serializers.data)
分页在DjagnoREST框架中工作不好
它只适用于页面大小。一页内容完整,下一页内容相同。
如何进行分页?在
UserSerializer
中不使用users\u post
,您需要使用page
:
class GroupViewSet(viewsets.ReadOnlyModelViewSet):
"""
Group View Set
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
pagination_class = StandardResultsSetPagination
@detail_route()
def user(self, request, pk=None):
_group = self.get_object()
users_post = _group.user_set.all()
page = self.paginate_queryset(users_post)
if page is not None:
serializers = UserSerializer(users_post, many=True, context={'request': request})
return self.get_paginated_response(serializers.data)
serializers = UserSerializer(users_post, many=True, context={'request': request})
return Response(serializers.data)
if page is not None:
serializers = UserSerializer(page, many=True, context={'request': request})
编辑:
请注意,它应该是
序列化程序
,而不是序列化程序
,因为您只有一个序列化程序。这是最好的方法吗?我们不能做一些事情,比如在详细路径中添加分页类
,但不确定您的意思,这应该是另一个问题。