[1.6.x] Fixed #20740 -- GenericIPAddressField should pass protocol to formfield()
Thanks Jeff250.
Backport of f2cb94f1c0
from master
This commit is contained in:
parent
b30a872973
commit
45fab74561
|
@ -1160,7 +1160,10 @@ class GenericIPAddressField(Field):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'form_class': forms.GenericIPAddressField}
|
defaults = {
|
||||||
|
'protocol': self.protocol,
|
||||||
|
'form_class': forms.GenericIPAddressField,
|
||||||
|
}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
return super(GenericIPAddressField, self).formfield(**defaults)
|
return super(GenericIPAddressField, self).formfield(**defaults)
|
||||||
|
|
||||||
|
|
|
@ -468,3 +468,16 @@ class BinaryFieldTests(test.TestCase):
|
||||||
def test_max_length(self):
|
def test_max_length(self):
|
||||||
dm = DataModel(short_data=self.binary_data*4)
|
dm = DataModel(short_data=self.binary_data*4)
|
||||||
self.assertRaises(ValidationError, dm.full_clean)
|
self.assertRaises(ValidationError, dm.full_clean)
|
||||||
|
|
||||||
|
class GenericIPAddressFieldTests(test.TestCase):
|
||||||
|
def test_genericipaddressfield_formfield_protocol(self):
|
||||||
|
"""
|
||||||
|
Test that GenericIPAddressField with a specified protocol does not
|
||||||
|
generate a formfield with no specified protocol. See #20740.
|
||||||
|
"""
|
||||||
|
model_field = models.GenericIPAddressField(protocol='IPv4')
|
||||||
|
form_field = model_field.formfield()
|
||||||
|
self.assertRaises(ValidationError, form_field.clean, '::1')
|
||||||
|
model_field = models.GenericIPAddressField(protocol='IPv6')
|
||||||
|
form_field = model_field.formfield()
|
||||||
|
self.assertRaises(ValidationError, form_field.clean, '127.0.0.1')
|
||||||
|
|
Loading…
Reference in New Issue