Open
Description
Along the lines of DetailSerializerMixin
:
class SerializerAPI(object):
"""
Mixin for using different Serializer for browsable API.
"""
def get_serializer_class(self, *args, **kwargs):
parent = super(SerializerAPI, self).get_serializer_class(*args, **kwargs)
# We use the API serializer when not HEAD/OPTIONS and the render is set to API
if (self.request.method not in ['HEAD', 'OPTIONS']
and hasattr(self.request, 'accepted_renderer')
and self.request.accepted_renderer.format == 'api'):
return self.serializer_class_api
else:
return parent