微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ChangePasswordForm Django

如何解决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 举报,一经查实,本站将立刻删除。