Django:覆盖form.errors上UserCreationForm的消息

时间:2020-04-07 05:13:52

标签: python django

我正在尝试覆盖(添加语言)form.errors消息。我已经尝试过了:

forms.py

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']


    def __init__(self, *args, **kwargs):
        super(CreateUserForm, self).__init__(*args, **kwargs)
        self.error_messages['duplicate_username'] = 'some message'

提交表单后,由于用户名是唯一的,并且模板上显示错误,因此不保存表单。我想使用相同的密码,但是每次密码验证都找不到错误的键。能给我吗?

1 个答案:

答案 0 :(得分:2)

将Meta类中的error_messages--(Django doc)属性设置为

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']
        error_messages = {
            'username': {
                'unique': 'Your Custom Error Message here !!!',
            },
        }

如果您要覆盖密码不匹配错误消息,请覆盖表单类中的 error_messages 属性(而不是Meta类中的属性),

class CreateUserForm(UserCreationForm):
    error_messages = {
        'password_mismatch': "Your Password Mismatch For 'UserCreationForm' class",
    }
    # other code
相关问题