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])
Вернуться на верх