summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authorHonza Král <honza.kral@gmail.com>2009-07-05 13:30:17 +0000
committerHonza Král <honza.kral@gmail.com>2009-07-05 13:30:17 +0000
commitff0eff055ea7cd28ba2856b89189d03dbe71c397 (patch)
tree1282cb6bff47df8da2db595aadc5695e24131fb6 /django/core
parent0e3b83c31515c041e8a43736e7dd49ffd835b052 (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.py28
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"