【发布时间】:2011-08-18 01:42:33
【问题描述】:
我是 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()方法。有关示例,请参见 docs.djangoproject.com/en/1.3/ref/forms/validation/…。
标签: python django validation