diff options
| author | Honza Král <honza.kral@gmail.com> | 2009-08-15 13:33:57 +0000 |
|---|---|---|
| committer | Honza Král <honza.kral@gmail.com> | 2009-08-15 13:33:57 +0000 |
| commit | 5ebafe3fb98ca99c7b7392087b899f1053d5cf5e (patch) | |
| tree | 1879a8b8cb9a70dbf246c9f5765893b819de4920 /django | |
| parent | 84c9cf16d36661f891673208ef8517881167881e (diff) | |
[soc2009/model-validation] use RegexValidator in RegexField
declarative definition prepared for RegexValidator children
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@11455 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/validators.py | 14 | ||||
| -rw-r--r-- | django/forms/fields.py | 12 |
2 files changed, 13 insertions, 13 deletions
diff --git a/django/core/validators.py b/django/core/validators.py index 09258f7e3e..fd7585552c 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -23,6 +23,14 @@ url_re = re.compile( r'(?:/?|/\S+)$', re.IGNORECASE) class RegexValidator(object): + regex = '' + + def __init__(self, regex=None): + if regex is not None: + self.regex = regex + if isinstance(self.regex, basestring): + self.regex = re.compile(regex) + def __call__(self, value): """ Validates that the input matches the regular expression. @@ -31,8 +39,10 @@ class RegexValidator(object): raise ValidationError(_(u'Enter a valid value.'), code='invalid') class URLValidator(RegexValidator): - def __init__(self, regex=url_re, verify_exists=False, validator_user_agent=URL_VALIDATOR_USER_AGENT): - self.regex = regex + regex = url_re + + def __init__(self, verify_exists=False, validator_user_agent=URL_VALIDATOR_USER_AGENT): + super(URLValidator, self).__init__() self.verify_exists = verify_exists self.user_agent = validator_user_agent diff --git a/django/forms/fields.py b/django/forms/fields.py index 8bf1df3f58..38ae2cec19 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -439,17 +439,7 @@ class RegexField(CharField): if isinstance(regex, basestring): regex = re.compile(regex) self.regex = regex - - def validate(self, value): - """ - Validates that the input matches the regular expression. Returns a - Unicode object. - """ - super(RegexField, self).validate(value) - if value == u'': - return value - if not self.regex.search(value): - raise ValidationError(self.error_messages['invalid']) + self.validators.append(validators.RegexValidator(regex=regex)) class EmailField(CharField): default_error_messages = { |
