mirror of https://github.com/django/django.git
Fixed #11860. Changed NullBooleanSelect's _has_changed method to repect differences between None and False. Thanks, matiasb.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12523 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
f9c8615e1f
commit
871a99c948
|
@ -452,9 +452,13 @@ class NullBooleanSelect(Select):
|
||||||
False: False}.get(value, None)
|
False: False}.get(value, None)
|
||||||
|
|
||||||
def _has_changed(self, initial, data):
|
def _has_changed(self, initial, data):
|
||||||
# Sometimes data or initial could be None or u'' which should be the
|
# For a NullBooleanSelect, None (unknown) and False (No)
|
||||||
# same thing as False.
|
# are not the same
|
||||||
return bool(initial) != bool(data)
|
if initial is not None:
|
||||||
|
initial = bool(initial)
|
||||||
|
if data is not None:
|
||||||
|
data = bool(data)
|
||||||
|
return initial != data
|
||||||
|
|
||||||
class SelectMultiple(Select):
|
class SelectMultiple(Select):
|
||||||
def render(self, name, value, attrs=None, choices=()):
|
def render(self, name, value, attrs=None, choices=()):
|
||||||
|
|
|
@ -532,6 +532,20 @@ Choices can be nested one level in order to create HTML optgroups:
|
||||||
<option value="2">Yes</option>
|
<option value="2">Yes</option>
|
||||||
<option value="3" selected="selected">No</option>
|
<option value="3" selected="selected">No</option>
|
||||||
</select>
|
</select>
|
||||||
|
>>> w._has_changed(False, None)
|
||||||
|
True
|
||||||
|
>>> w._has_changed(None, False)
|
||||||
|
True
|
||||||
|
>>> w._has_changed(None, None)
|
||||||
|
False
|
||||||
|
>>> w._has_changed(False, False)
|
||||||
|
False
|
||||||
|
>>> w._has_changed(True, False)
|
||||||
|
True
|
||||||
|
>>> w._has_changed(True, None)
|
||||||
|
True
|
||||||
|
>>> w._has_changed(True, True)
|
||||||
|
False
|
||||||
|
|
||||||
""" + \
|
""" + \
|
||||||
r""" # [This concatenation is to keep the string below the jython's 32K limit].
|
r""" # [This concatenation is to keep the string below the jython's 32K limit].
|
||||||
|
|
Loading…
Reference in New Issue