diff options
| author | Jonas Haag <jonas@lophus.org> | 2017-10-19 00:09:19 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-10-18 20:05:24 -0400 |
| commit | a831e4bad0e5f616680955dfd63a38fa49d8086b (patch) | |
| tree | c73e85b6ffa8e7a12ca92692a7c07b431c9761fd | |
| parent | 673427d3fca2a6635d067d01c01fd42fc1a1ab76 (diff) | |
[2.0.x] Fixed #28711 -- Fixed unordered_list template filter with lazy translations.
Backport of d997ab776477dd9ecb158229b2622c7f1ed93dfb from master
| -rw-r--r-- | django/template/defaultfilters.py | 3 | ||||
| -rw-r--r-- | tests/template_tests/filter_tests/test_unordered_list.py | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index b172be6239..935fcdff8e 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -1,6 +1,7 @@ """Default variable filters.""" import random as random_module import re +import types from decimal import ROUND_HALF_UP, Context, Decimal, InvalidOperation from functools import wraps from operator import itemgetter @@ -616,7 +617,7 @@ def unordered_list(value, autoescape=True): except StopIteration: yield item, None break - if not isinstance(next_item, str): + if isinstance(next_item, (list, tuple, types.GeneratorType)): try: iter(next_item) except TypeError: diff --git a/tests/template_tests/filter_tests/test_unordered_list.py b/tests/template_tests/filter_tests/test_unordered_list.py index c3fa3bd4d0..6a04664d99 100644 --- a/tests/template_tests/filter_tests/test_unordered_list.py +++ b/tests/template_tests/filter_tests/test_unordered_list.py @@ -1,6 +1,7 @@ from django.template.defaultfilters import unordered_list from django.test import SimpleTestCase from django.utils.safestring import mark_safe +from django.utils.translation import gettext_lazy from ..utils import setup @@ -38,6 +39,12 @@ class FunctionTests(SimpleTestCase): def test_list(self): self.assertEqual(unordered_list(['item 1', 'item 2']), '\t<li>item 1</li>\n\t<li>item 2</li>') + def test_list_gettext(self): + self.assertEqual( + unordered_list(['item 1', gettext_lazy('item 2')]), + '\t<li>item 1</li>\n\t<li>item 2</li>' + ) + def test_nested(self): self.assertEqual( unordered_list(['item 1', ['item 1.1']]), |
