Fixed #27431 -- Prevented disabled form fields from appearing as changed.

This commit is contained in:
Kenneth Veldman 2016-11-06 10:30:48 +01:00 committed by Tim Graham
parent 7b05ffd95d
commit 8618a7eaa1
2 changed files with 10 additions and 0 deletions

View File

@ -187,6 +187,10 @@ class Field(object):
"""
Return True if data differs from initial.
"""
# Always return False if the field is disabled since self.bound_data
# always uses the initial value in this case.
if self.disabled:
return False
try:
data = self.to_python(data)
if hasattr(self, '_coerce'):

View File

@ -34,3 +34,9 @@ class BasicFieldsTests(SimpleTestCase):
f.fields['field2'].choices = [('2', '2')]
self.assertEqual(f.fields['field1'].widget.choices, [('1', '1')])
self.assertEqual(f.fields['field2'].widget.choices, [('2', '2')])
class DisabledFieldTests(SimpleTestCase):
def test_disabled_field_has_changed_always_false(self):
disabled_field = Field(disabled=True)
self.assertFalse(disabled_field.has_changed('x', 'y'))