From 37ce9a503511eb612a5d17f9908cf4f6f72f9a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Kr=C3=A1l?= Date: Wed, 5 Aug 2009 01:22:48 +0000 Subject: [PATCH] [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 --- django/core/validators.py | 8 ++++++++ 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.'), }