From e33029cca35883f6a530531396d8e452137a8024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Kr=C3=A1l?= Date: Wed, 3 Jun 2009 02:36:49 +0000 Subject: [PATCH] [soc2009/model-validation] IntegerField migrated to split to_python/validate git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@10901 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/forms/fields.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/django/forms/fields.py b/django/forms/fields.py index d8fae48352..f835c173e9 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -191,23 +191,27 @@ class IntegerField(Field): self.max_value, self.min_value = max_value, min_value super(IntegerField, self).__init__(*args, **kwargs) - def clean(self, value): + def to_python(self, value): """ Validates that int() can be called on the input. Returns the result of int(). Returns None for empty values. """ - super(IntegerField, self).clean(value) + value = super(IntegerField, self).to_python(value) if value in EMPTY_VALUES: return None + try: value = int(str(value)) except (ValueError, TypeError): raise ValidationError(self.error_messages['invalid']) + return value + + def validate(self, value): + super(IntegerField, self).validate(value) if self.max_value is not None and value > self.max_value: raise ValidationError(self.error_messages['max_value'] % self.max_value) if self.min_value is not None and value < self.min_value: raise ValidationError(self.error_messages['min_value'] % self.min_value) - return value class FloatField(Field): default_error_messages = {