diff options
| author | Jon Dufresne <jon.dufresne@gmail.com> | 2015-01-27 12:41:59 -0800 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2015-02-27 12:23:21 +0100 |
| commit | 3b966c2b73c420222d1524cda03c1a5626c90fe6 (patch) | |
| tree | 198d303472c07adbf590e1ab4db4085f012b791e /django/forms/fields.py | |
| parent | fa9cb5dcdc816fe0e606b8f1020d53526e08b0d4 (diff) | |
Fixed #24229 -- Changed IntegerField to clean floats representing integers
Diffstat (limited to 'django/forms/fields.py')
| -rw-r--r-- | django/forms/fields.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py index 6d1c14586e..44bbfd8e6f 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -236,6 +236,7 @@ class IntegerField(Field): default_error_messages = { 'invalid': _('Enter a whole number.'), } + re_decimal = re.compile(r'\.0*\s*$') def __init__(self, max_value=None, min_value=None, *args, **kwargs): self.max_value, self.min_value = max_value, min_value @@ -259,8 +260,9 @@ class IntegerField(Field): return None if self.localize: value = formats.sanitize_separators(value) + # Strip trailing decimal and zeros. try: - value = int(str(value)) + value = int(self.re_decimal.sub('', str(value))) except (ValueError, TypeError): raise ValidationError(self.error_messages['invalid'], code='invalid') return value |
