[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):
|
||||
# Sometimes data or initial could be None or '' which should be the
|
||||
# same thing as False.
|
||||
if initial == 'False':
|
||||
# show_hidden_initial may have transformed False to 'False'
|
||||
initial = False
|
||||
return bool(initial) != bool(data)
|
||||
|
||||
class Select(Widget):
|
||||
|
|
|
@ -240,6 +240,8 @@ class FormsWidgetTestCase(TestCase):
|
|||
self.assertTrue(w._has_changed(False, 'on'))
|
||||
self.assertFalse(w._has_changed(True, 'on'))
|
||||
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):
|
||||
w = Select()
|
||||
|
|
Loading…
Reference in New Issue