J'ai un Django Cadre de repos génériqueviewset pour lequel j'essaie de mettre en place une pagination comme suit:
#settings.py
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS':
'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 20
}
#views.py
class PolicyViewSet(viewsets.GenericViewSet):
def list(self, request):
queryset = Policy.objects.all()
page = self.paginate_queryset(queryset)
serializer = PolicySerializer(page, many=True)
return self.get_paginated_response(serializer.data)
Cela fonctionne comme prévu.Cever, si j'essaie de faire la même chose avec juste une normale graphique comme suit:
#views.py
class PolicyViewSet(viewsets.ViewSet):
def list(self, request):
queryset = Policy.objects.all()
page = self.paginate_queryset(queryset)
serializer = PolicySerializer(page, many=True)
return self.get_paginated_response(serializer.data)
Je reçois une erreur indiquant:
L'objet 'PolicyViewset' n'a aucun attribut 'paginate_Quiseryset'
Comment puis-je configurer la pagination avec un placement normal graphique. Quelle est la différence entre un génériqueviewset et une ciblée dans la DRF?
il suffit d'hériter aussi de GenericViewset. Par exemple:
#views.py
class PolicyViewSet(viewsets.ViewSet, viewsets.GenericViewSet):
def list(self, request):
queryset = Policy.objects.all()
page = self.paginate_queryset(queryset)
serializer = PolicySerializer(page, many=True)
return self.get_paginated_response(serializer.data)
Comment définir la pagination avec un review normal?
Si vous souhaitez utiliser "pagination_class" dans votre ciVoir, vous devez donc utiliser génériqueviewset au lieu de Viewset.