From e291fc4757e952fd4f663d88adca416b016db13e Mon Sep 17 00:00:00 2001 From: Noam Date: Thu, 25 Jun 2015 13:46:11 +0300 Subject: Fixed #25031 -- Fixed a regression in the unordered_list template filter. --- django/template/defaultfilters.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'django') 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 -- cgit v1.3