2015-11-13 119 views
3

我可以使用@ detail_router的分页吗?@detail_route在django rest框架中不工作分页

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) 

分页在Djagno Rest框架中无法正常工作。

enter image description here

它仅适用于页面大小。一页有全部内容,下一页是全部内容。 我该怎么做分页?

回答

7

而是在你UserSerializer你需要使用page使用users_post的:

if page is not None: 
     serializers = UserSerializer(page, many=True, context={'request': request}) 

编辑: 注意,它应该是serializer而不是serializers因为你只需要一个串行器。

+1

谢谢你的回答! – egaoneko

+0

这是做这件事的最好方法吗?我们不能做一些像'pagination_class'到'detail_route'的东西吗? – Darwesh

+0

不知道你的意思,这应该是一个不同的问题。 – Linovia