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)