diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2010-02-23 14:17:42 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2010-02-23 14:17:42 +0000 |
| commit | 871a99c948bcfe7e59bf93df4bcd00cffcbf94f2 (patch) | |
| tree | cafb89407007c96fb7c436ca6515f441aef819a8 /django/forms | |
| parent | f9c8615e1fbd6490d566f179e5fc3bf18ce51268 (diff) | |
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
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/widgets.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 8b036bacd2..57bdea17f4 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -452,9 +452,13 @@ class NullBooleanSelect(Select): False: False}.get(value, None) def _has_changed(self, initial, data): - # Sometimes data or initial could be None or u'' which should be the - # same thing as False. - return bool(initial) != bool(data) + # For a NullBooleanSelect, None (unknown) and False (No) + # are not the same + if initial is not None: + initial = bool(initial) + if data is not None: + data = bool(data) + return initial != data class SelectMultiple(Select): def render(self, name, value, attrs=None, choices=()): |
