Changeset 5684
- Timestamp:
- 07/13/07 07:03:20 (1 year ago)
- Files:
-
- django/trunk/django/newforms/fields.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/newforms/fields.py
r5680 r5684 299 299 raise ValidationError(ugettext(u'Enter a valid date/time.')) 300 300 301 class RegexField( Field):301 class RegexField(CharField): 302 302 def __init__(self, regex, max_length=None, min_length=None, error_message=None, *args, **kwargs): 303 303 """ … … 306 306 'Enter a valid value' is too generic for you. 307 307 """ 308 super(RegexField, self).__init__( *args, **kwargs)308 super(RegexField, self).__init__(max_length, min_length, *args, **kwargs) 309 309 if isinstance(regex, basestring): 310 310 regex = re.compile(regex) 311 311 self.regex = regex 312 self.max_length, self.min_length = max_length, min_length313 312 self.error_message = error_message or ugettext(u'Enter a valid value.') 314 313 … … 318 317 Unicode object. 319 318 """ 320 super(RegexField, self).clean(value) 321 if value in EMPTY_VALUES: 322 value = u'' 323 value = smart_unicode(value) 319 value = super(RegexField, self).clean(value) 324 320 if value == u'': 325 321 return value 326 if self.max_length is not None and len(value) > self.max_length:327 raise ValidationError(ugettext(u'Ensure this value has at most %d characters.') % self.max_length)328 if self.min_length is not None and len(value) < self.min_length:329 raise ValidationError(ugettext(u'Ensure this value has at least %d characters.') % self.min_length)330 322 if not self.regex.search(value): 331 323 raise ValidationError(self.error_message)
