es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    He escrito una clase de paginación personalizada CustomPagination que hereda de PageNumberPagination y se utiliza en mi vista CouponView. 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?

Comments are closed.