Kann ich die Paginierung von @detail_router verwenden?
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)
Die Paginierung funktioniert im Djagno Rest Framework nicht gut.
Es funktioniert nur die Seitengröße. Eine Seite hat den gesamten Inhalt und die nächste Seite hat den gleichen Inhalt. Wie kann ich für die Paginierung tun?
Antworten:
7 für die Antwort № 1Anstatt zu verwenden users_post
in deinem UserSerializer
Sie müssen verwenden page
:
if page is not None:
serializers = UserSerializer(page, many=True, context={"request": request})
Bearbeiten: Beachten Sie, dass es sein sollte serializer
und nicht serializers
da Sie nur einen Serializer haben.