我是 Django 和 python 的新手,正在尝试从书中学习它。在下面的代码中,我试图确保password1和password2相同,但它似乎没有运行clean_password2验证,因为即使它们具有不同的值,它也总是返回true。
import re
from django.contrib.auth.models import User
from django import forms
class RegistrationForm(forms.Form):
username = forms.CharField(label=u'Username', max_length=30)
email = forms.EmailField(label=u'Email')
password1 = forms.CharField(
label= u'Password',
widget = forms.PasswordInput()
)
password2 = forms.CharField(
label= u'Password (Again)',
widget = forms.PasswordInput()
)
def clean_password2(self):
password1 = self.cleaned_data.get('password1')
password2 = self.cleaned_data.get('password2')
if password1 != password2:
raise forms.ValidationError('Passwords do not match.')
return password2
最佳答案
如果您要清理两个相互依赖的字段,则应覆盖表单的 clean()
方法。您可以阅读更多here .
关于python - Django form.is_valid 总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875950/