嗨,我是Django的新手。我有一个从UserCreationForm继承的UserRegisterForm。一切正常
class UserRegisterForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ["username", "email", "password1", "password2"]
现在,如果电子邮件已经在数据库中,我希望在电子邮件输入框附近显示一个"电子邮件已经存在"的标志。我试过:
class UserRegisterForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ["username", "email", "password1", "password2"]
def clean_email(self):
username = self.cleaned_data.get("username")
if User.objects.filter(username=username).exists():
raise forms.ValidationError("Username is not unique")
return username
def clean_username(self):
email = self.cleaned_data.get("email")
if User.objects.filter(email=email).exists():
raise forms.ValidationError("Email is not unique")
return email
它不起作用。如果有人能帮忙,我会很高兴的。
切换两个方法名称:
def clean_username(self):
username = self.cleaned_data.get("username")
if User.objects.filter(username=username).exists():
raise forms.ValidationError("Username is not unique")
return username
def clean_email(self):
email = self.cleaned_data.get("email")
if User.objects.filter(email=email).exists():
raise forms.ValidationError("Email is not unique")
return email