我正在编写登录表单,在该表单下需要重新输入密码以进行验证。当我输入正确的信息时,它正在工作,而当我输入空白表单键错误时,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>
感谢您的关注