introduced min_length for a StringField

This commit is contained in:
Florian Schlachter 2010-04-16 18:13:11 +02:00
parent f3ca9fa4c5
commit 170c56bcb9

View File

@ -22,9 +22,10 @@ class StringField(BaseField):
"""A unicode string field. """A unicode string field.
""" """
def __init__(self, regex=None, max_length=None, **kwargs): def __init__(self, regex=None, max_length=None, min_length=None, **kwargs):
self.regex = re.compile(regex) if regex else None self.regex = re.compile(regex) if regex else None
self.max_length = max_length self.max_length = max_length
self.min_length = min_length
super(StringField, self).__init__(**kwargs) super(StringField, self).__init__(**kwargs)
def to_python(self, value): def to_python(self, value):
@ -35,6 +36,9 @@ class StringField(BaseField):
if self.max_length is not None and len(value) > self.max_length: if self.max_length is not None and len(value) > self.max_length:
raise ValidationError('String value is too long') raise ValidationError('String value is too long')
if self.min_length is not None and len(value) < self.min_length:
raise ValidationError('String value is too short')
if self.regex is not None and self.regex.match(value) is None: if self.regex is not None and self.regex.match(value) is None:
message = 'String value did not match validation regex' message = 'String value did not match validation regex'