Возможно ли в 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()
.
Мне интересно, возможно ли использовать обе эти валидации.