Похоже, ваша модель registration_form
не установлена на unique=True
в поле Email
, а в вашем наборе данных имеется более одного объекта registration_form
с указанным значением.Вам захочется обработать MultipleObjectsReturned
.Другой рекомендацией было бы выполнить фильтр с учетом регистра:
match = registration_form.objects.get(Email__iexact=Email)
В конечном счете, вы можете обработать дублирующиеся записи с миграцией, сделать поле registration_form.Email
unique=True
и выполнить .get
при обработкеисключение MultipleObjectsReturned
:
def clean_Email(self):
Email = self.cleaned_data.get('Email')
try:
match = registration_form.objects.get(Email__iexact=Email)
print(match)
except registration_form.DoesNotExist:
# Unable to find a user, this is fine
return Email
except registration_form.MultipleObjectsReturned:
# Pass here to hit the validation error
pass
raise forms.ValidationError('This email address is already in use.')
Вы можете просто настроить свой запрос, чтобы проверить: registration_form.objects.filter(Email__iexact=Email).exists()
def clean_Email(self):
Email = self.cleaned_data.get('Email')
match = registration_form.objects.filter(Email__iexact=Email).exists()
if match:
raise forms.ValidationError('This email address is already in use.')
return Email