我要做的是:
这是唯一需要定义的干净方法,以确保2个密码正确并且用户名有效。
使用
clean_fieldname
方法,这样您就不需要做更多的工作来验证用户名。
def clean_password2(self):
password1 = self.cleaned_data.get('password1')
password2 = self.cleaned_data.get('password2')
if not password2:
raise forms.ValidationError("You must confirm your password")
if password1 != password2:
raise forms.ValidationError("Your passwords do not match")
return password2
你说得对,你
不
需要验证用户名是否唯一,因为ModelForm知道用户名必须唯一。
您的代码的问题是您正在重写
clean()
方法,这意味着ModelForm没有执行其“real”clean()。
要获取默认验证,请调用
super(MyForm, self).clean()
或者最好还是不要重写
clean
一点也不例外
clean_password2
.