diff options
| author | Honza Král <honza.kral@gmail.com> | 2009-07-05 13:30:17 +0000 |
|---|---|---|
| committer | Honza Král <honza.kral@gmail.com> | 2009-07-05 13:30:17 +0000 |
| commit | ff0eff055ea7cd28ba2856b89189d03dbe71c397 (patch) | |
| tree | 1282cb6bff47df8da2db595aadc5695e24131fb6 /django/core | |
| parent | 0e3b83c31515c041e8a43736e7dd49ffd835b052 (diff) | |
[soc2009/model-validation] Added min and max length validator. CharField now validates it's value's length using a validator.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@11194 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/validators.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/django/core/validators.py b/django/core/validators.py index 6758a387b0..3fc750481e 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -40,6 +40,7 @@ def validate_ipv4_address(value): code="invalid" ) + class MaxValueValidator(object): def __init__(self, max_value): self.max_value = max_value @@ -51,6 +52,7 @@ class MaxValueValidator(object): code='max_value', params=(self.max_value,) ) + class MinValueValidator(object): def __init__(self, min_value): self.min_value = min_value @@ -63,6 +65,32 @@ class MinValueValidator(object): params=(self.min_value,) ) +class MinLengthValidator(object): + def __init__(self, min_length): + self.min_length = min_length + + def __call__(self, value): + value_len = len(value) + if value_len < self.min_length: + raise ValidationError( + _(u'Ensure this value has at least %(min)d characters (it has %(length)d).'), + code='min_length', + params={ 'min': self.min_length, 'length': value_len} + ) + +class MaxLengthValidator(object): + def __init__(self, max_length): + self.max_length = max_length + + def __call__(self, value): + value_len = len(value) + if value_len > self.max_length: + raise ValidationError( + _(u'Ensure this value has at most %(max)d characters (it has %(length)d).'), + code='max_length', + params={ 'max': self.max_length, 'length': value_len} + ) + class ComplexValidator(object): def get_value(self, name, all_values, obj): assert all_values or obj, "Either all_values or obj must be supplied" |
