Fix detail_route and list_route serializer_class overrides in schemas

This commit is contained in:
Nik 2016-07-28 16:58:41 +03:00
parent 1e6e7ea0ec
commit 5f02a0b0da

View File

@ -255,12 +255,22 @@ class SchemaGenerator(object):
if method not in ('PUT', 'PATCH', 'POST'):
return []
if not hasattr(view, 'get_serializer_class'):
serializer_class = None
# looking for serializer_class override
if hasattr(callback, 'actions'):
func = getattr(view, callback.actions[method.lower()])
if 'serializer_class' in getattr(func, 'kwargs', ()):
serializer_class = func.kwargs['serializer_class']
if serializer_class is None and hasattr(view, 'get_serializer_class'):
serializer_class = view.get_serializer_class()
if serializer_class is None:
return []
fields = []
serializer_class = view.get_serializer_class()
serializer = serializer_class()
if isinstance(serializer, serializers.ListSerializer):