在Jinja2中迭代两次相同的列表? [英] Iterate over the same list twice in Jinja2?
问题描述
<$ p 我试图在两个不同的位置打印一个标签列表,但是第二次我在/列表中,它不会循环。 $ p>
< UL>
#用于标签中的标签
< li>< a href =/ my-tags / {{tag.name}}> {{tag.name}}< / a> < /锂>
#endfor
< / ul>
< ul>
#用于标签中的标签
< li>< a href =/ my-tags / {{tag.name}}> {{tag.name}}< / a> < /锂>
#endfor
< / ul>
如果我把它放在我的模板中,第二个UL结果为空。
有什么想法?
编辑:
标签变量。
contact_data.append({'name':'Placeholder','emails':contact.emails''标签':[在nt_tags.get_tags_by_taggee(contact)中标记标签]})
编辑againt:
记录我传递的内容和它的内容
[< nt_tags .Tag object at 0x0000000005CAFF28>,< nt_tags.Tag object at 0x0000000005CAFFD0>]
一个列表不是一个迭代器的权利?
如果标签
是一个迭代器,那么在第一次迭代结束时,将不会有任何剩余的迭代。你可以在将它传递给你的模板例如:list(tags)
在你的上下文中实现它之前......
I'm trying to print a list of tags in two separate places, but the second time I for/in the list, it doesn't loop.
<ul>
# for tag in tags
<li><a href="/my-tags/{{tag.name}}">{{tag.name}}</a></li>
# endfor
</ul>
<ul>
# for tag in tags
<li><a href="/my-tags/{{tag.name}}">{{tag.name}}</a></li>
# endfor
</ul>
The second UL ends up empty if I put that in my template.
Any ideas?
Edit:
This is how I'm populating the tags variable.
contact_data.append({'name': 'Placeholder', 'emails': contact.emails, 'tags': [tag for tag in nt_tags.get_tags_by_taggee(contact)]})
Edit againt:
Logged what I'm passing and its
[<nt_tags.Tag object at 0x0000000005CAFF28>, <nt_tags.Tag object at 0x0000000005CAFFD0>]
Which looks like just a list not an iterator right?
If tags
is an iterator, then at the end of the first iteration, there won't be anything left to iterate. You could materialise it to a list before passing it to your template eg: list(tags)
in your context...
这篇关于在Jinja2中迭代两次相同的列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!