'ViewSet' object has no attribute 'action' during Schema generation · Issue #4398 · encode/django-rest-framework (original) (raw)

Steps to reproduce

Create a ModelViewSet that uses get_serializer_class():

class MyViewSet(viewsets.ModelViewSet): queryset = Person.objects.all()

def get_serializer_class(self):
    if self.action == 'list':
        return serializers.SerializerB
    return serializers.SerializerA

Expected behavior

Schema should be generated in a view that uses the CoreJSONRenderer.

Actual behavior

An AttributeError is thrown: 'MyViewSet' object has no attribute 'action'.

This is related to #4373 and #4278. If this isn't a bug, I may be missing something...the docs do have this method as the suggested way to dynamically change serializers.

Using djangorestframework==3.4.4 and python2.7.