Skip to content

Commit 3e6a149

Browse files
author
Ryan Allen
committed
only allow integer field to accept integers and strings, fixes #2835
1 parent ecb37f5 commit 3e6a149

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

rest_framework/fields.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,8 +682,9 @@ def to_internal_value(self, data):
682682
self.fail('max_string_length')
683683

684684
try:
685+
assert(isinstance(data, int) or isinstance(data, str))
685686
data = int(data)
686-
except (ValueError, TypeError):
687+
except (ValueError, TypeError, AssertionError):
687688
self.fail('invalid')
688689
return data
689690

tests/test_fields.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,8 @@ class TestIntegerField(FieldValues):
552552
0.0: 0
553553
}
554554
invalid_inputs = {
555-
'abc': ['A valid integer is required.']
555+
'abc': ['A valid integer is required.'],
556+
0.5: ['A valid integer is required.']
556557
}
557558
outputs = {
558559
'1': 1,

0 commit comments

Comments
 (0)