Здесь у меня есть две формы для добавления и обновления пользователя. Форма Регистрации работает нормально, чтобы проверить, существует ли уже электронная почта, но при обновлении пользователя она не работает должным образом. Проблема в том, когда я обновляю имя пользователя только это такжеговорит, что адрес электронной почты уже существует. Что я хочу при обновлении пользователя, если только пользователь меняет адрес электронной почты, а измененный адрес электронной почты уже используется, то я хочу вызвать ошибку проверки. Как я могу это сделать?
forms.py
class RegisterForm(UserCreationForm):
def check_email(self):
email = self.cleaned_data['email']
if User.objects.filter(email=email).exists():
raise ValidationError('Email Already Exists')
return email
class Meta:
model = User
fields = ['username', "email", "password1", "password2", 'is_superuser', 'is_staff', 'is_active']
class EditRegisterForm(forms.ModelForm):
def check_email(self):
email = self.cleaned_data['email']
email_exists = User.objects.filter(email=email)
if self.instance and self.instance.pk and not email_exists
return email
else:
raise ValidationError('Email already Exists')
class Meta:
model = User
fields = ['username', "email", 'is_superuser','is_staff', 'is_active']