2015-11-13 2 views
3

Могу ли я использовать разбиение на страницы @ detail_router?@detail_route не работает разбиение на страницы в django rest framework

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) 

Pagination не работает в Djagno Rest Framework.

enter image description here

Он работает только размер страницы. На одной странице есть все содержимое, а следующая страница - то же самое содержимое. Как это сделать для разбивки на страницы?

ответ

7

Вместо использования users_post в вашем UserSerializer вам нужно будет использовать page:

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

Edit: Обратите внимание, что она должна быть serializer и не serializers, как у вас есть только один сериалайзер.

+1

Благодарим вас за ответ! – egaoneko

+0

Это лучший способ сделать это? Не можем ли мы сделать что-то вроде добавления 'pagination_class' в' detail_route' – Darwesh

+0

Не уверен, что вы имеете в виду, и это должен быть другой вопрос. – Linovia

Смежные вопросы