diff options
| author | Honza Král <honza.kral@gmail.com> | 2009-08-05 01:22:48 +0000 |
|---|---|---|
| committer | Honza Král <honza.kral@gmail.com> | 2009-08-05 01:22:48 +0000 |
| commit | 37ce9a503511eb612a5d17f9908cf4f6f72f9a7b (patch) | |
| tree | 0ae24689deb926fe269d7da5c897d743d97b9dda | |
| parent | 8d4417c75df30502f47abf6bd3582dfa2425f562 (diff) | |
[soc2009/model-validation] Converted CommaSeparatedIntegerField to use validators
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@11394 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/core/validators.py | 8 | ||||
| -rw-r--r-- | django/db/models/fields/__init__.py | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/django/core/validators.py b/django/core/validators.py index 3fc750481e..00535243aa 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -40,6 +40,14 @@ def validate_ipv4_address(value): code="invalid" ) +comma_separated_int_list_re = re.compile('^[\d,]+$') + +def validate_comma_separated_integer_list(value): + if not comma_separated_int_list_re.search(smart_unicode(value)): + raise ValidationError( + _(u'Enter only digits separated by commas.'), + code="invalid" + ) class MaxValueValidator(object): def __init__(self, max_value): diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 8b51ac69a9..9f666f1bc6 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -491,11 +491,9 @@ class CharField(Field): # TODO: Maybe move this into contrib, because it's specialized. class CommaSeparatedIntegerField(CharField): + default_validators = [validators.validate_comma_separated_integer_list] def formfield(self, **kwargs): defaults = { - 'form_class': forms.RegexField, - 'regex': '^[\d,]+$', - 'max_length': self.max_length, 'error_messages': { 'invalid': _(u'Enter only digits separated by commas.'), } |
