Django

Code

Changeset 4111

Show
Ignore:
Timestamp:
11/26/06 18:23:17 (2 years ago)
Author:
adrian
Message:

Fixed #3038 -- newforms: RegexField? no longer validates empty input for required=False. Thanks for reporting, Thomas Steinacher

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/newforms/fields.py

    r4093 r4111  
    171171        if value in EMPTY_VALUES: value = u'' 
    172172        value = smart_unicode(value) 
    173         if not self.regex.search(value): 
     173        if (value or self.required) and not self.regex.search(value): 
    174174            raise ValidationError(self.error_message) 
    175175        return value 
  • django/trunk/tests/regressiontests/forms/tests.py

    r4106 r4111  
    485485>>> f.clean(None) 
    486486u'' 
     487>>> f.clean('') 
     488u'' 
    487489>>> f.clean([1, 2, 3]) 
    488490u'[1, 2, 3]' 
     
    490492CharField accepts an optional max_length parameter: 
    491493>>> f = CharField(max_length=10, required=False) 
    492 >>> f.clean('') 
    493 u'' 
    494494>>> f.clean('12345') 
    495495u'12345' 
     
    701701... 
    702702ValidationError: [u'Enter a valid value.'] 
     703>>> f.clean('') 
     704Traceback (most recent call last): 
     705... 
     706ValidationError: [u'This field is required.'] 
     707 
     708>>> f = RegexField('^\d[A-F]\d$', required=False) 
     709>>> f.clean('2A2') 
     710u'2A2' 
     711>>> f.clean('3F3') 
     712u'3F3' 
     713>>> f.clean('3G3') 
     714Traceback (most recent call last): 
     715... 
     716ValidationError: [u'Enter a valid value.'] 
     717>>> f.clean('') 
     718u'' 
    703719 
    704720Alternatively, RegexField can take a compiled regular expression: