Миксин Python: Почему мое сериализованное поле не передается?

Пытаюсь написать очень простой python mixin для установки статуса "ReadOnly". Вот что у меня есть

class ReadOnlyMixin:
    readonly_fields = serializers.SerializerMethodField()

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for field in self.get_readonly_fields():
            self.fields[field].read_only = True

    def get_readonly_fields(self):
        raise NotImplementedError(
            "Classes subclassing ReadOnlyMixin must implement a "
            "`get_readonly_fields` method"
        )

и в моем классе сериализатора у меня есть

class TestSerializer(mixins.ReadOnlyMixin, serializers.ModelSerializer):
    class Meta:
        model = models.Test
        fields = '__all__'

    def get_readonly_fields(self):
        exp = self.instance
        return ['status'] if exp.status != 'Pending' else []

Другие поля в сериализаторе проходят, а readonly_fields - нет. Все вызывается также, потому что мой self.fields['status'].read_only обновляется до True.

Даже если я просто назначаю readonly_fields = ['status'], он все равно не проходит.

Что я делаю не так?

Вернуться на верх