在Jinja2中两次迭代相同的列表?

Jor*_*ren 6 python google-app-engine jinja2

我正在尝试在两个不同的位置打印标签列表,但第二次我在/列表中,它不循环.

<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>
Run Code Online (Sandbox Code Playgroud)

如果我把它放在我的模板中,第二个UL会变空.

有任何想法吗?

编辑:

这就是我填充tags变量的方式.

contact_data.append({'name': 'Placeholder', 'emails': contact.emails, 'tags': [tag for tag in nt_tags.get_tags_by_taggee(contact)]})
Run Code Online (Sandbox Code Playgroud)

再次编辑:

记录我正在传递的内容及其内容

[<nt_tags.Tag object at 0x0000000005CAFF28>, <nt_tags.Tag object at 0x0000000005CAFFD0>]
Run Code Online (Sandbox Code Playgroud)

这看起来只是一个列表而不是迭代器吗?

Jon*_*nts 6

如果tags是迭代器,则在第一次迭代结束时,将没有任何可迭代的东西。您可以将其具体化为一个列表,然后再将其传递给您eg: list(tags)的上下文中的模板...