diff options
| author | Tim Heap <tim@timheap.me> | 2014-11-21 12:35:58 +1100 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2014-11-21 09:45:08 +0100 |
| commit | 5b17dcd8ef9c444af2e0a234d708c37b313ef04f (patch) | |
| tree | b5a6e312da51b88846e5f4301c282978dcb745df /django/forms | |
| parent | d8f00e1918ce4df76920f3d79bc8d805fa69e29e (diff) | |
Fixed #23883 -- Stopped flatatt modifying its argument
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/utils.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/django/forms/utils.py b/django/forms/utils.py index f5fc0515a5..7d4cd90b57 100644 --- a/django/forms/utils.py +++ b/django/forms/utils.py @@ -29,16 +29,17 @@ def flatatt(attrs): The result is passed through 'mark_safe'. """ + key_value_attrs = [] boolean_attrs = [] - for attr, value in list(attrs.items()): - if value is True: - boolean_attrs.append((attr,)) - del attrs[attr] - elif value is False: - del attrs[attr] + for attr, value in attrs.items(): + if isinstance(value, bool): + if value: + boolean_attrs.append((attr,)) + else: + key_value_attrs.append((attr, value)) return ( - format_html_join('', ' {0}="{1}"', sorted(attrs.items())) + + format_html_join('', ' {0}="{1}"', sorted(key_value_attrs)) + format_html_join('', ' {0}', sorted(boolean_attrs)) ) |
