Commit 814c3b2e authored by Claude Paroz's avatar Claude Paroz
Browse files

[1.5.x] Fixed #19537 -- Made CheckboxInput._has_changed handle 'False' string

Thanks dibrovsd@gmail.com for the report.
Backport of d11038ac from master.
parent fa715361
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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):
+2 −0
Original line number Diff line number Diff line
@@ -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()