mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-08 06:14:47 +03:00
Merge f7da76bd60
into 3113e8e5f0
This commit is contained in:
commit
ab781eb797
|
@ -678,18 +678,21 @@ class IntegerField(Field):
|
||||||
message = self.error_messages['min_value'].format(min_value=self.min_value)
|
message = self.error_messages['min_value'].format(min_value=self.min_value)
|
||||||
self.validators.append(MinValueValidator(self.min_value, message=message))
|
self.validators.append(MinValueValidator(self.min_value, message=message))
|
||||||
|
|
||||||
|
def coerce_to_int(self, value):
|
||||||
|
return int(self.re_decimal.sub('', str(value)))
|
||||||
|
|
||||||
def to_internal_value(self, data):
|
def to_internal_value(self, data):
|
||||||
if isinstance(data, six.text_type) and len(data) > self.MAX_STRING_LENGTH:
|
if isinstance(data, six.text_type) and len(data) > self.MAX_STRING_LENGTH:
|
||||||
self.fail('max_string_length')
|
self.fail('max_string_length')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = int(self.re_decimal.sub('', str(data)))
|
data = self.coerce_to_int(data)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
self.fail('invalid')
|
self.fail('invalid')
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def to_representation(self, value):
|
def to_representation(self, value):
|
||||||
return int(value)
|
return self.coerce_to_int(value)
|
||||||
|
|
||||||
|
|
||||||
class FloatField(Field):
|
class FloatField(Field):
|
||||||
|
|
|
@ -563,7 +563,8 @@ class TestIntegerField(FieldValues):
|
||||||
1: 1,
|
1: 1,
|
||||||
0: 0,
|
0: 0,
|
||||||
1.0: 1,
|
1.0: 1,
|
||||||
0.0: 0
|
0.0: 0,
|
||||||
|
'1.0': 1
|
||||||
}
|
}
|
||||||
field = serializers.IntegerField()
|
field = serializers.IntegerField()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user