summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorNoam <noamkush@gmail.com>2015-06-25 13:46:11 +0300
committerTim Graham <timograham@gmail.com>2015-06-27 09:37:41 -0400
commite291fc4757e952fd4f663d88adca416b016db13e (patch)
treeb94ca22fdaa6c4b1d6178e781099643c53d690e1 /django
parent2e70bf37854e39d46557317fb4098da5261618d5 (diff)
Fixed #25031 -- Fixed a regression in the unordered_list template filter.
Diffstat (limited to 'django')
-rw-r--r--django/template/defaultfilters.py35
1 files changed, 20 insertions, 15 deletions
diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py
index 92e1a6ab78..5f5003b176 100644
--- a/django/template/defaultfilters.py
+++ b/django/template/defaultfilters.py
@@ -683,22 +683,27 @@ def unordered_list(value, autoescape=True):
def walk_items(item_list):
item_iterator = iter(item_list)
- for item in item_iterator:
- try:
- next_item = next(item_iterator)
- except StopIteration:
- next_item = None
- if not isinstance(next_item, six.string_types):
+ try:
+ item = next(item_iterator)
+ while True:
try:
- iter(next_item)
- except TypeError:
- pass
- else:
- yield item, next_item
- continue
- yield item, None
- if next_item:
- yield next_item, None
+ next_item = next(item_iterator)
+ except StopIteration:
+ yield item, None
+ break
+ if not isinstance(next_item, six.string_types):
+ try:
+ iter(next_item)
+ except TypeError:
+ pass
+ else:
+ yield item, next_item
+ item = next(item_iterator)
+ continue
+ yield item, None
+ item = next_item
+ except StopIteration:
+ pass
def list_formatter(item_list, tabs=1):
indent = '\t' * tabs