Added an API mixin to use a diferent serializers in the list action method

remotes/origin/enhancement/email-actions
David Barragán Merino 2013-10-21 10:04:56 +02:00
parent 00d8a9cd3b
commit 9ad0e979c8
1 changed files with 14 additions and 0 deletions

View File

@ -60,7 +60,20 @@ class PreconditionMixin(object):
self.pre_conditions_on_delete(obj)
class DetailAndListSerializersMixin(object):
"""
Use a diferent serializer class to the list action.
"""
list_serializer_class = None
def get_serializer_class(self):
if self.action == "list" and self.list_serializer_class:
return self.list_serializer_class
return super().get_serializer_class()
class ModelCrudViewSet(AtomicMixin,
DetailAndListSerializersMixin,
PreconditionMixin,
HeadersPaginationMixin,
ConditionalPaginationMixin,
@ -74,6 +87,7 @@ class ModelCrudViewSet(AtomicMixin,
class ModelListViewSet(AtomicMixin,
DetailAndListSerializersMixin,
PreconditionMixin,
HeadersPaginationMixin,
ConditionalPaginationMixin,