【问题标题】:Standard django forms error messages标准 django 表单错误消息
【发布时间】:2013-04-15 14:29:34
【问题描述】:

django 表单中的标准错误消息在哪里?

我如何在自定义验证中使用它们?

我的意思是像“此字段是必需的”这样的错误

谢谢

编辑:

目前我这样做:

def clean(self):
    cleaned_data = super(QuoteForm, self).clean()

    country = cleaned_data['country']

    for key in COUNTRY_FIELDS[country]:
        if cleaned_data[key] == '':
            self._errors[key] = self.error_class(_('This field is required'))

    return cleaned_data

固定: 我补充说:

        self._errors[key] = self.error_class( [forms.Field.default_error_messages['required']])

【问题讨论】:

    标签: python django validation


    【解决方案1】:

    django.forms.fields.Field 及其子类具有default_error_messages 类属性。

    这是一个字典,键为 requiredinvalid,错误消息为值。

     

    • django.forms.fields.Field.default_error_messagesrequired

    • IntegerFieldFloatFieldDateFieldTimeField 每个都有自己的invalid

    • DecimalFieldmax_digitsmax_decimal_placesmax_whole_digits

    • 等等

    Browse the source。在页面上搜索default_error_messages

     

    如果您要继承 Field,例如,您可以

    raise ValidationError(self.error_messages['invalid'])
    

    在字段中,error_messages 包含字段类及其祖先的 default_error_messages 以及在字段初始化期间传递的任何其他 error_messages

     

    如果您想在字段外重用required 消息,您可以

    from django.forms import fields 
    
    raise ValidationError(fields.Field.default_error_messages['required'])
    

     

    您想重复使用哪些消息?

    【讨论】:

    • 你为什么不发布一些代码来说明你想做什么?您通常不必担心error_class
    猜你喜欢
    • 2016-09-04
    • 2015-05-28
    • 2010-11-13
    • 2013-09-27
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    相关资源
    最近更新 更多