web-dev-qa-db-fra.com

Désactiver la pagination automatique de Django Rest Framework ModelViewSet

J'utilise Django Rest Framework's ModelViewSet pour une de mes vues. ModelViewSet utilise le ListModelMixin qui pagine automatiquement les résultats mais je ne le fais pas Je veux que les résultats soient paginés. Dans mon appel API, je dis combien de résultats je veux renvoyer, mais en l'état, je ne peux pas récupérer plus de 10 résultats en un seul appel.

Existe-t-il un moyen de désactiver la pagination automatique et d'obtenir ainsi autant de résultats que je veux en retour?

19
Bill Noble

Si vous utilisez des versions récentes de DRF, il vous suffit d'ajouter pagination_class = None à votre définition ModelViewSet.

class MyClassBasedView(ModelViewSet):
    pagination_class = None
    ...

Vous pouvez également voir quelques conseils ici https://github.com/tomchristie/Django-rest-framework/issues/139

45
trinchet

ModelViewSet ou mixins.ListModelMixin crée automatiquement la pagination pour nous. vous pouvez l'arrêter en paginator = None

> class NotesViewSet(viewsets.ModelViewSet):    
>     queryset = Notes.objects.all()
>     serializer_class = NotesWriteSerializer
>     paginator = None
2
Gautam Kumar