我有一个用户注册表格:
class UserRegisterForm(forms.ModelForm):
username = forms.CharField(label='enter username', widget=forms.TextInput(attrs={
'placeholder': 'username', 'class': 'form-control', 'id': 'login'
}))
email = forms.CharField(label='enter your email', widget=forms.EmailInput(attrs={
'placeholder': 'email', 'class': 'form-control', 'id': 'email'
}))
password = forms.CharField(label='enter password', validators=[valite_password], widget=forms.PasswordInput(attrs={
'placeholder': 'password', 'class': 'form-control', 'id': 'password'
}))
password2 = forms.CharField(label='confirm password', widget=forms.PasswordInput(attrs={
'placeholder': 'confirm password', 'class': 'form-control', 'id': 'password2'
}))
class Meta:
model = User
fields = [
'username', 'email', 'password', 'password2'
]
它有一个clean_password
方法:
def clean_password(self):
password = self.cleaned_data.get('password')
password2 = self.cleaned_data.get('password2')
print(password)
print(password2)
if password != password2:
raise forms.ValidationError('passwords must match')
return password
当我通过 POST 请求发送表单数据时,self.cleaned_data ('password')
在我的clean_password
方法中将有我输入的值并且self.cleaned_data ('password2')
总是返回 None,无论我输入什么,这都会导致异常ValidationError ('passwords must match' )
。
我究竟做错了什么?