1

我有一个用户注册表格:

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' )

我究竟做错了什么?

4

0 回答 0