templatetags: introduce |list, to turn a generator into a list (#54807)
This commit is contained in:
parent
822e3311a2
commit
1e13d82e8e
|
@ -1174,3 +1174,19 @@ def test_is_empty():
|
|||
assert tmpl.render({'foo': ['foo']}) == 'False'
|
||||
assert tmpl.render({'foo': {}}) == 'True'
|
||||
assert tmpl.render({'foo': {'foo': 42}}) == 'False'
|
||||
|
||||
|
||||
def test_convert_as_list():
|
||||
tmpl = Template('{{ foo|list|first }}')
|
||||
assert tmpl.render({'foo': ['foo']}) == 'foo'
|
||||
|
||||
def list_generator():
|
||||
for i in range(5):
|
||||
yield i
|
||||
|
||||
assert tmpl.render({'foo': list_generator}) == '0'
|
||||
|
||||
def list_range():
|
||||
return range(5)
|
||||
|
||||
assert tmpl.render({'foo': list_range}) == '0'
|
||||
|
|
|
@ -791,3 +791,9 @@ def is_empty(value):
|
|||
@register.filter
|
||||
def strip_metadata(value):
|
||||
return unlazy(value).strip_metadata()
|
||||
|
||||
|
||||
@register.filter(name='list')
|
||||
def list_(value):
|
||||
# turn a generator into a list
|
||||
return list(unlazy(value))
|
||||
|
|
Loading…
Reference in New Issue