Возможно ли в DRF написать проверку на основе объектов и проверку на основе полей в одном и том же сериализаторе?

Можно ли написать такой сериализатор?

class CustomUserSerializer(serializers.ModelSerializer):
    email = serializers.EmailField()
    password = serializers.CharField()

    def validate(self, data):
        if data['password'] != data['password_confirmation']:
            raise serializers.ValidationError("Passwords doesen't match")
        return data

    def validate_password(self, value):
        if (len(value) < 8):
            raise serializers.ValidationError("Password must be at least 8 characters")
        return value

    def validate_email(self, value):
        lower_email = value.lower()
        if CustomUser.objects.filter(email__iexact=lower_email).exists():
            raise serializers.ValidationError("This email already exists in our database")
        return lower_email

Вызывает validate_email и validate_password, но не вызывает метод validate. В представлении я вызываю метод is_valid(). Мне интересно, возможно ли использовать обе эти валидации.

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