Django:error_messages的形式没有改变

时间:2019-01-16 17:41:17

标签: python django

我需要将error_messages的形式从英语更改为西班牙语。

我发现了类似的问题:

Django - change field validation message

我正在使用它的第二个选项2.1。但它不起作用,为什么?

enter image description here

my_default_errors = {
    'required': 'Este campo es obligatorio',
    'invalid': 'Ese nombre de usuario ya está tomado'
}

class SignUpForm(UserCreationForm):
    first_name = forms.CharField(label= "Nombre", max_length=100, required=True)
    last_name = forms.CharField(label = 'Apellido', max_length=100, required=True)
    username = forms.CharField(label='Nombre de usuario', max_length=100, required=True, error_messages=my_default_errors)
    email = forms.EmailField(label='Correo electrónico', max_length=60, required=True)
    password1 = forms.CharField(label = 'Contraseña', widget=forms.PasswordInput)
    password2 = forms.CharField(label='Confirmar contraseña', widget=forms.PasswordInput)

    def __init__(self, *args, **kwargs):
        super(SignUpForm, self).__init__(*args, **kwargs)

        for fieldname in ['username', 'password1', 'password2']:
            self.fields[fieldname].help_text = None


    class Meta:
        model = User
        fields = ('first_name', 'last_name', 'username', 'email', 'password1',
                 'password2')

1 个答案:

答案 0 :(得分:0)

关于model fields error_messages的文档提到了消息密钥unique,但是在forms文档中我找不到任何提及。

也许对您有用,将此密钥添加到dict

my_default_errors = {
    ...
    'unique': 'Ese nombre de usuario ya está tomado',
}