Например, я определяю сериалайзер для объекта "Компания" с которой связана учетная запись (объект User):
class CompanySerializerForOwner(serializers.ModelSerializer):
"""
Сериалайзер для юр. лица для компании.
Компания не может менять свою учетную запись.
"""
username = serializers.SerializerMethodField()
class Meta:
model = models.Company
fields = (
'username',
'inn',
'ogrn',
'city',
'address',
'email',
'phone',
)
def get_username(self, obj):
return obj.user.username
Естественно при попытке отправить запрос на обновление username patch методом оно не обновляется (ожидаемо). Но результат возвращается с кодом 200, а хотелось бы вернуть все таки предупреждение что изменять это поле запрещено. Использовать методы `validate_username` и `validate` тоже не получится, потомучто это поле отсутствует в validated_data.
Нашел вот такое решение о там делается это на уровне вью, а хотелось бы узнать есть ли возможность выполнить валидацию именно в сериалайзере...