mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-26 03:23:59 +03:00
Handle non-string input for IP fields (#4338)
This commit is contained in:
parent
e997713313
commit
aa349fe767
|
@ -804,7 +804,10 @@ class IPAddressField(CharField):
|
|||
self.validators.extend(validators)
|
||||
|
||||
def to_internal_value(self, data):
|
||||
if data and ':' in data:
|
||||
if not isinstance(data, six.string_types):
|
||||
self.fail('invalid', value=data)
|
||||
|
||||
if ':' in data:
|
||||
try:
|
||||
if self.protocol in ('both', 'ipv6'):
|
||||
return clean_ipv6_address(data, self.unpack_ipv4)
|
||||
|
|
|
@ -663,6 +663,7 @@ class TestIPAddressField(FieldValues):
|
|||
'127.122.111.2231': ['Enter a valid IPv4 or IPv6 address.'],
|
||||
'2001:::9652': ['Enter a valid IPv4 or IPv6 address.'],
|
||||
'2001:0db8:85a3:0042:1000:8a2e:0370:73341': ['Enter a valid IPv4 or IPv6 address.'],
|
||||
1000: ['Enter a valid IPv4 or IPv6 address.'],
|
||||
}
|
||||
outputs = {}
|
||||
field = serializers.IPAddressField()
|
||||
|
|
Loading…
Reference in New Issue
Block a user