Django Rest Framework объединяет полевые и неполевые ошибки
У меня есть модель сериализатора для изменения электронной почты и пароля.
class ChangeEmailSerializer(ModelSerializer):
class Meta:
model = CustomUser
fields = ['email', 'password']
def update(self, instance, validated_data):
instance.email = validated_data.get('email')
return super().save_instance(instance)
Как объединить ошибку поля EmailField с ошибкой не поля из функции validate, используемой для проверки пароля пользователя?
Вы можете написать пользовательский валидатор и использовать его в своей модели. Ниже я добавил простой пример с использованием валидатора на основе функций.
Validator:
def email_valid(email):
if '@' not in email:
raise serializers.ValidationError('This field must contain a proper email.')
Модель:
class CustomUser(AbstractUser):
# ...
email = models.EmailField(_('email address'), validators=[email_valid])