From 9ee8ce575bd0abda161dd4db4cc9181d5583d9f7 Mon Sep 17 00:00:00 2001 From: Kyle Fuller Date: Thu, 1 Aug 2013 09:50:36 +0100 Subject: [PATCH] Allow setting the paginator serializer class to None #611 --- rest_framework/generics.py | 13 +++++++------ rest_framework/mixins.py | 7 +++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/rest_framework/generics.py b/rest_framework/generics.py index 99e9782e2..5a05ef3ef 100644 --- a/rest_framework/generics.py +++ b/rest_framework/generics.py @@ -92,13 +92,14 @@ class GenericAPIView(views.APIView): """ Return a serializer instance to use with paginated data. """ - class SerializerClass(self.pagination_serializer_class): - class Meta: - object_serializer_class = self.get_serializer_class() + if self.pagination_serializer_class: + class SerializerClass(self.pagination_serializer_class): + class Meta: + object_serializer_class = self.get_serializer_class() - pagination_serializer_class = SerializerClass - context = self.get_serializer_context() - return pagination_serializer_class(instance=page, context=context) + pagination_serializer_class = SerializerClass + context = self.get_serializer_context() + return pagination_serializer_class(instance=page, context=context) def paginate_queryset(self, queryset, page_size=None): """ diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index f11def6d4..2f419d1e3 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -90,8 +90,11 @@ class ListModelMixin(object): page = self.paginate_queryset(self.object_list) if page is not None: serializer = self.get_pagination_serializer(page) - else: - serializer = self.get_serializer(self.object_list, many=True) + + if serializer: + return Response(serializer.data) + + serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data)