django确认密码验证器

时间:2012-07-06 20:03:53

标签: django validation

我有一个配置文件设置页面,用户可以在其中更改密码,如果有,则必须进行确认。我无法将其作为必填字段,因为他们无需更改密码。如果密码字段不为空,是否有验证确认密码的示例?然后检查它们是否相等?我无法找到任何这样的例子......

1 个答案:

答案 0 :(得分:24)

将以下内容添加到表单的clean方法:

def clean(self):
    password1 = self.cleaned_data.get('password1')
    password2 = self.cleaned_data.get('password2')

    if password1 and password1 != password2:
        raise forms.ValidationError("Passwords don't match")

    return self.cleaned_data

修改

上面的验证错误消息将进入non_field_errors。您没有指定在每个密码字段上显示的错误消息,但根据上下文,我认为这是“此字段是必需的”消息。如果是这种情况,请确保表单字段在定义时具有required=False,或者如果您正在使用表单子类(并且无法编辑实际表单字段),则可以覆盖{{1形式的方法:

__init__