如何覆盖Django中的默认错误

时间:2014-07-05 10:53:53

标签: python django django-forms

我想覆盖默认验证错误。我的自定义消息需要诸如用户输入长度之类的信息 - 就像默认消息一样。

如何在邮件中添加length等变量?

我试过这段代码:

class MyForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ['myfield']
        error_messages = {
            'myfield': {
                'required': 'My error',
                'min_length': _(u'You wrote only %(length)d chars'),
                'max_length': _(u'You wrote %(length)d chars - too much.'),
            },
        }

我得到错误:

KeyError at /
u'length'

1 个答案:

答案 0 :(得分:1)

min_length适用于django.core.validators.MinLengthValidator,其默认消息为:

message = _('Ensure this value is %(limit_value)s (it is %(show_value)s).')

和params:

params = {'limit_value': self.limit_value, 'show_value': cleaned}

因此,请尝试将'length'更改为'show_value'