From 6d4c85fd93a7edb2fb80cceae198c4d132360329 Mon Sep 17 00:00:00 2001 From: Ryan Allen Date: Fri, 17 Apr 2015 14:38:35 -0400 Subject: [PATCH] only allow integer field to accept integers and strings, fixes #2835 --- rest_framework/fields.py | 2 +- tests/test_fields.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index bea773001c..ed0270a59b 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -682,7 +682,7 @@ def to_internal_value(self, data): self.fail('max_string_length') try: - data = int(data) + data = int(re.compile(r'\.0*\s*$').sub('', str(data))) except (ValueError, TypeError): self.fail('invalid') return data diff --git a/tests/test_fields.py b/tests/test_fields.py index 1aa528da61..77539803bc 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -552,7 +552,8 @@ class TestIntegerField(FieldValues): 0.0: 0 } invalid_inputs = { - 'abc': ['A valid integer is required.'] + 'abc': ['A valid integer is required.'], + 0.5: ['A valid integer is required.'] } outputs = { '1': 1,