diff options
| author | Jonas Haag <jonas@lophus.org> | 2017-10-19 00:09:19 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-10-18 19:45:10 -0400 |
| commit | d997ab776477dd9ecb158229b2622c7f1ed93dfb (patch) | |
| tree | 85484ed89be45bc5e559b6c71001508de9288491 | |
| parent | b21b1b10af0bbe0498193881520efb02897bd444 (diff) | |
Fixed #28711 -- Fixed unordered_list template filter with lazy translations.
| -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 298347429f..c857a0e0a3 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 @@ -615,7 +616,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..db6ed5aedd 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 ugettext_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', ugettext_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']]), |
