我有一个配置文件设置页面,用户可以在其中更改他们的密码,如果他们这样做,他们必须确认。我不能将此作为必填字段,因为他们不必更改密码。如果密码字段不为空,是否有验证确认密码的示例?然后检查它们是否相等?我找不到任何这样的例子......
问问题
15884 次
1 回答
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
在定义它们时具有,或者如果您正在使用表单子类(并且无法编辑实际的表单字段),您可以覆盖__init__
表单的方法:
class MyForm(SomeOtherForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['password1'].required = False
self.fields['password2'].required = False
于 2012-07-06T20:24:12.597 回答