Pase el contexto de solicitud al serializador desde Viewset en Django Rest Framework

Tengo un caso donde los valores para un campo de serializador dependen de la identidad del usuario actualmente conectado. He visto cómo agregar al usuario al contexto al inicializar un serializador, pero no estoy seguro de cómo hacerlo al usar un ViewSet, ya que solo proporciona la clase de serializador y no la instancia del serializador real.

Básicamente me gustaría saber cómo ir desde:

class myModelViewSet(ModelViewSet):
   queryset = myModel.objects.all()
   permission_classes = [DjangoModelPermissions]
   serializer_class = myModelSerializer

a:

class myModelSerializer(serializers.ModelSerializer):
    uploaded_by = serializers.SerializerMethodField()
    special_field = serializers.SerializerMethodField()

    class Meta:
        model = myModel

    def get_special_field(self, obj):
        if self.context['request'].user.has_perm('something.add_something'):
           return something

Lo siento si no estaba claro, de los DOC:Agregar contexto adicional Que dice hacer

serializer = AccountSerializer(account, context={'request': request})
serializer.data

Pero no estoy seguro de cómo hacerlo automáticamente desde el conjunto de vistas, ya que solo puedo cambiar la clase de serializador, y no la instancia del serializador en sí.

Respuestas a la pregunta(4)

Su respuesta a la pregunta