[1.5.x] Fixed #19537 -- Made CheckboxInput._has_changed handle 'False' string
Thanks dibrovsd@gmail.com for the report.
Backport of d11038acb2
from master.
This commit is contained in:
parent
fa71536129
commit
814c3b2e2a
|
@ -533,6 +533,9 @@ class CheckboxInput(Widget):
|
||||||
def _has_changed(self, initial, data):
|
def _has_changed(self, initial, data):
|
||||||
# Sometimes data or initial could be None or '' which should be the
|
# Sometimes data or initial could be None or '' which should be the
|
||||||
# same thing as False.
|
# same thing as False.
|
||||||
|
if initial == 'False':
|
||||||
|
# show_hidden_initial may have transformed False to 'False'
|
||||||
|
initial = False
|
||||||
return bool(initial) != bool(data)
|
return bool(initial) != bool(data)
|
||||||
|
|
||||||
class Select(Widget):
|
class Select(Widget):
|
||||||
|
|
|
@ -240,6 +240,8 @@ class FormsWidgetTestCase(TestCase):
|
||||||
self.assertTrue(w._has_changed(False, 'on'))
|
self.assertTrue(w._has_changed(False, 'on'))
|
||||||
self.assertFalse(w._has_changed(True, 'on'))
|
self.assertFalse(w._has_changed(True, 'on'))
|
||||||
self.assertTrue(w._has_changed(True, ''))
|
self.assertTrue(w._has_changed(True, ''))
|
||||||
|
# Initial value may have mutated to a string due to show_hidden_initial (#19537)
|
||||||
|
self.assertTrue(w._has_changed('False', 'on'))
|
||||||
|
|
||||||
def test_select(self):
|
def test_select(self):
|
||||||
w = Select()
|
w = Select()
|
||||||
|
|
Loading…
Reference in New Issue