Django

Code

Show
Ignore:
Timestamp:
12/17/07 02:05:27 (1 year ago)
Author:
mtredinnick
Message:

Fixed #5871 -- Factored out the validation errors in localflavor form fields. Brings them into line with the standard newforms fields. Patch from Jan Rademaker.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/localflavor/us/forms.py

    r5876 r6926  
    1313 
    1414class USZipCodeField(RegexField): 
     15    default_error_messages = { 
     16        'invalid': ugettext('Enter a zip code in the format XXXXX or XXXXX-XXXX.'), 
     17    } 
     18 
    1519    def __init__(self, *args, **kwargs): 
    1620        super(USZipCodeField, self).__init__(r'^\d{5}(?:-\d{4})?$', 
    17             max_length=None, min_length=None, 
    18             error_message=ugettext('Enter a zip code in the format XXXXX or XXXXX-XXXX.'), 
    19                     *args, **kwargs) 
     21            max_length=None, min_length=None, *args, **kwargs) 
    2022 
    2123class USPhoneNumberField(Field): 
     24    default_error_messages = { 
     25        'invalid': u'Phone numbers must be in XXX-XXX-XXXX format.', 
     26    } 
     27 
    2228    def clean(self, value): 
    2329        super(USPhoneNumberField, self).clean(value) 
     
    2834        if m: 
    2935            return u'%s-%s-%s' % (m.group(1), m.group(2), m.group(3)) 
    30         raise ValidationError(u'Phone numbers must be in XXX-XXX-XXXX format.'
     36        raise ValidationError(self.error_messages['invalid']
    3137 
    3238class USSocialSecurityNumberField(Field): 
     
    4551          1962 promotional number). 
    4652    """ 
     53    default_error_messages = { 
     54        'invalid': ugettext('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'), 
     55    } 
     56 
    4757    def clean(self, value): 
    4858        super(USSocialSecurityNumberField, self).clean(value) 
    4959        if value in EMPTY_VALUES: 
    5060            return u'' 
    51         msg = ugettext('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.') 
    5261        match = re.match(ssn_re, value) 
    5362        if not match: 
    54             raise ValidationError(msg
     63            raise ValidationError(self.error_messages['invalid']
    5564        area, group, serial = match.groupdict()['area'], match.groupdict()['group'], match.groupdict()['serial'] 
    5665 
     
    5968           group == '00' or \ 
    6069           serial == '0000': 
    61             raise ValidationError(msg
     70            raise ValidationError(self.error_messages['invalid']
    6271 
    6372        # Second pass: promotional and otherwise permanently invalid numbers. 
     
    6675           value == '078-05-1120' or \ 
    6776           value == '219-09-9999': 
    68             raise ValidationError(msg
     77            raise ValidationError(self.error_messages['invalid']
    6978        return u'%s-%s-%s' % (area, group, serial) 
    7079 
     
    7584    abbreviation for the given state. 
    7685    """ 
     86    default_error_messages = { 
     87        'invalid': u'Enter a U.S. state or territory.', 
     88    } 
     89 
    7790    def clean(self, value): 
    7891        from us_states import STATES_NORMALIZED 
     
    89102            except KeyError: 
    90103                pass 
    91         raise ValidationError(u'Enter a U.S. state or territory.'
     104        raise ValidationError(self.error_messages['invalid']
    92105 
    93106class USStateSelect(Select):