django覆盖模型表单或字段中的默认错误消息

时间:2013-01-10 10:29:04

标签: python django django-models django-forms

更改每个字段消息都是冗余,因此我创建了新的包装器

class CharFieldWrapper(forms.CharField):     

    def __init__(self, *args, **kwargs):
        super(CharFieldWrapper, self).__init__(*args, **kwargs)  
        self.error_messages = {'required' : 'XXXX: YOU SHOULD PUT SOMETHING!' }     

是的,这不起作用。

有人知道如何使字段或表单的包装类更改error_messages吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

尝试将它们作为参数传递:

class CharFieldWrapper(forms.CharField):

   def init(self, *args, **kwargs):
       kwargs['error_messages'] = {'required' : 'XXXX: YOU SHOULD PUT SOMETHING!' }
       super(CharFieldWrapper, self).init(*args, **kwargs)       

答案 1 :(得分:1)

您的init方法存在问题:

class CharFieldWrapper(forms.CharField):

    def __init__(self, *args, **kwargs):
        super(CharFieldWrapper, self).__init__(*args, **kwargs)
        self.error_messages['required'] = 'XXXX: YOU SHOULD PUT SOMETHING!'

同时正在执行self.error_messages = {'required': 'my error msg'}您完全覆盖error_messages这不好,因为也可能存在其他一些验证错误。你应该像我一样更新self.error_messages dict而不是覆盖它。