Reputation: 371
Change Every field message is redundancy, so I make the new wrapper
class CharFieldWrapper(forms.CharField):
def __init__(self, *args, **kwargs):
super(CharFieldWrapper, self).__init__(*args, **kwargs)
self.error_messages = {'required' : 'XXXX: YOU SHOULD PUT SOMETHING!' }
Yeah, This does not work.
Is anybody knows how make wrapper class of field or form to change error_messages?
Thank you.
Upvotes: 1
Views: 451
Reputation: 39659
There is a problem with your init
method:
class CharFieldWrapper(forms.CharField):
def __init__(self, *args, **kwargs):
super(CharFieldWrapper, self).__init__(*args, **kwargs)
self.error_messages['required'] = 'XXXX: YOU SHOULD PUT SOMETHING!'
Also while doing self.error_messages = {'required': 'my error msg'}
You are completely overwriting error_messages
which is not good as there might be some other validation errors also. You should update the self.error_messages
dict not overwrite it as I did.
Upvotes: 1
Reputation: 3631
Try to pass them as parameter:
class CharFieldWrapper(forms.CharField):
def init(self, *args, **kwargs):
kwargs['error_messages'] = {'required' : 'XXXX: YOU SHOULD PUT SOMETHING!' }
super(CharFieldWrapper, self).init(*args, **kwargs)
Upvotes: 2