maazza
maazza

Reputation: 7193

Standard django forms error messages

where a are standard error messages in django forms ?

And how can i use them in my custom validation ?

I mean errors like 'this field is required'

Thanks

EDIT:

currently i do this:

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

FIXED: I added:

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

Upvotes: 1

Views: 1640

Answers (1)

Pavel Anossov
Pavel Anossov

Reputation: 62948

django.forms.fields.Field and its subclasses have a default_error_messages class attribute.

It's a dict with keys like required and invalid and the error messages as values.

 

  • django.forms.fields.Field.default_error_messages has required

  • IntegerField, FloatField, DateField, TimeField each have its own invalid.

  • DecimalField has max_digits, max_decimal_places and max_whole_digits

  • etc.

Browse the source. Search the page for default_error_messages.

 

If you are subclassing a Field, you can, for example,

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

In a field, error_messages contains default_error_messages of the field's class and its ancestors and any additional error_messages that were passed during field initialization.

 

If you want to reuse a required message outside a field, you could

from django.forms import fields 

raise ValidationError(fields.Field.default_error_messages['required'])

 

What messages did you want to reuse?

Upvotes: 4

Related Questions