summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Haag <jonas@lophus.org>2017-10-19 00:09:19 +0200
committerTim Graham <timograham@gmail.com>2017-10-18 19:45:10 -0400
commitd997ab776477dd9ecb158229b2622c7f1ed93dfb (patch)
tree85484ed89be45bc5e559b6c71001508de9288491
parentb21b1b10af0bbe0498193881520efb02897bd444 (diff)
Fixed #28711 -- Fixed unordered_list template filter with lazy translations.
-rw-r--r--django/template/defaultfilters.py3
-rw-r--r--tests/template_tests/filter_tests/test_unordered_list.py7
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']]),