如何解决ChangePasswordForm Django
我正在尝试为 Django 中的 changepasswordview 自定义表单字段错误,但是,为此我相信我需要知道字段错误的属性名称,以便我可以执行以下操作:
class UserUpdatePassword(PasswordChangeForm):
class Meta:
model = User
fields = ('password')
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.fields['old_password'].label = "Password antiguo"
print(self.fields['new_password1'].error_messages)
self.fields['new_password1'].label = "Nuevo Password"
self.fields['new_password1'].help_text = "Mínimo 8 caracteres,números y letras"
self.fields['new_password2'].label = "Confirmar nuevo Password"
self.fields['new_password1'].error_messages = {'password_mismatch': "Los Passwords ingresados no son iguales",}
我知道有密码和密码确认不匹配的错误,当密码不够长时,只有字母或数字等。我在哪里可以找到属性名称? (例如'password_mismatch')
解决方法
在您的 UserUpdatePassword 表单中设置以下类变量:
error_messages = {
'password_mismatch': _("Los Passwords ingresados no son iguales"),}
并删除
self.fields['new_password1'].error_messages = {'password_mismatch': "Los Passwords ingresados no son iguales",}
,
我设法这样做了:
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.error_messages['password_incorrect'] = "El Password ingresado es incorrecto"
self.error_messages['password_mismatch'] = "Los Passwords ingresados no son iguales"
self.fields['old_password'].label = "Password antiguo"
self.fields['new_password1'].label = "Nuevo Password"
self.fields['new_password1'].help_text = "Mínimo 8 caracteres,números y letras"
self.fields['new_password2'].label = "Confirmar nuevo Password"
print(self.errors['new_password2'])
但是,有一组我无法自定义的错误。它们在我上面粘贴的最后一行代码中。 "self.errors['new_password2']" 提供了一个列表,我只能用整数访问它。例如“此密码太短”是 self.errors['new_password2'][0] 。为了自定义它,我需要像 self.errors['new_password2']['password_too_short'] 一样访问它,当然这是不可能的。有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。