0

我正在编写登录表单,在该表单下需要重新输入密码以进行验证。当我输入正确的信息时,它正在工作,而当我输入空白表单键错误时,django 返回键错误。有了正确的信息,它的工作就不会明白什么是错的。

代码如下

forms.py
class Login(forms.Form):
    name = forms.CharField()
    email = forms.EmailField()
    passwrd = forms.CharField(label='Password',
                              widget=forms.PasswordInput)
    rpasswrd = forms.CharField(label='Re-enter Password',widget=forms.PasswordInput)
    def clean(self):
        cleaned_data = super().clean()
        valpwd = cleaned_data['passwrd']
        valrpwd = cleaned_data['rpasswrd']
        valname = self.cleaned_data['name']
        if valpwd != valrpwd:
            raise forms.ValidationError('Password does not match')
        if len(valname) < 4:
            raise forms.ValidationError('Enter More than 4 words')
        elif len(valname) > 20:
            raise forms.ValidationError('Enter less than 20 words')
        elif valname.isdigit():
            raise forms.ValidationError('No Number Allowed in Name')

视图.py

def signup(request):
    if request.method == 'POST':
        log = Login(request.POST)
        if log.is_valid():
            print('Form Validated')
            name = log.cleaned_data['name']
            email = log.cleaned_data['email']
            passwrd = log.cleaned_data['passwrd']
            rpasswrd = log.cleaned_data['rpasswrd']
            print('Name :', name)
            print('Email:', email)
            print('Password:', passwrd)
            print('Re-Password:', rpasswrd)
            return HttpResponseRedirect('/rk03/success/')

    else:
        log = Login()
        print('This is a GET request')
    return render(request, 'rk03/login.html', {'form': log})

登录.html

<form action="" method="POST" novalidate>
        {% csrf_token %}
    <table> 
            {{form}}
        </table>
        <input type="submit" value="Submit">
    </form>

感谢您的关注

4

0 回答 0