La paginación en Django Rest Framework no está funcionando.
He escrito CustomPagination de drf en un archivo separado en mi proyecto que luce así:
class ProductPageNumberPagination(PageNumberPagination):
page_size = 1
class CustomPagination(PageNumberPagination):
def get_paginated_response(self, data):
return Response({
'links': {
'next': self.get_next_link(),
'previous': self.get_previous_link()
},
'count': self.page.paginator.count,
'page_size' : 15,
'results': data
})
Ahora lo estoy heredando en mi vista de esta manera:
class CouponView(APIView, CustomPagination):
permission_classes = [AllowAny]
def get(self,request,pk = None,*args,**kwargs):
id = pk
if id is not None:
abc = Coupons.objects.get(id=id)
serializer = CouponSerializer(abc)
return serializer.data
else:
abc = Coupons.objects.all()
serializer = CouponSerializer(abc,many=True)
return Response(serializer.data,status=200)
Sin embargo, el código anterior no funciona. La pregunta es por qué no funciona al heredar mi clase personalizada, mientras que si hubiera importado PageNumberPagination predeterminado, funcionaría. Parece que solo se puede heredar la clase predeterminada y no la definida personalmente.
davy.ai
He escrito una clase de paginación personalizada
CustomPagination
que hereda dePageNumberPagination
y se utiliza en mi vistaCouponView
. Sin embargo, el código no funciona. Parece que solo se puede heredar la clase predeterminada y no la definida personalmente. ¿Hay alguna manera de hacer que la clase definida personalmente funcione?