When I try to use Django Rest Framework extra actions on a viewset, I can not make the decorator's `serializer_class` work.

```py
class ClientViewSet(ModelViewSet):
    queryset = Client.objects.all()
    serializer_class = ClientSerializer

    def get_queryset(self):
        # Do things

    def get_serializer_class(self):
        if self.action in ["create"]:
            return CreateClientSerializer
        elif self.action in ["retrieve"]:
            return ClientDetailSerializer
        return self.serializer_class

    @action(detail=True, methods=["get"], serializer_class=ClientDetailSerializer)
    def get_by_name(self, request, name=None):
        """
        Get one Client searching by name.
        @param request:
        @param name: Client code
        @return: Response
        """
        queryset = get_object_or_404(Client, name__iexact=name)
        serializer = self.get_serializer(queryset)
        return Response(serializer.data)

```

So, even if the extra action is supposedly overriding the ViewSet default serializer class, I still get `ClientSerializer` instead of `ClientDetailSerializer`.

The official documentation states that...

> 
> The decorator allows you to override any viewset-level configuration such as `permission_classes`, `serializer_class`, `filter_backends`...:
> 
> 
> 

My `get_serializer_class` override defaults to the ViewSet `serializer_class` attribute for my extra actions. If I understand correctly, this is basically what `GenericAPIView` `get_serializer_class` does under the hood:

```py
def get_serializer_class(self):
    """
    (...)
    """
    assert self.serializer_class is not None, (
        "'%s' should either include a `serializer_class` attribute, "
        "or override the `get_serializer_class()` method."
        % self.__class__.__name__
    )

    return self.serializer_class

```

I guess I'm missing something obvious here. Just can not figure out what...

Any help is appreciated. Thanks in advance :)