Shr*_*rat 12 python jinja2 template-inheritance
我的一个jinja模板中的代码与以下内容类似
{% for post in posts %}
{% include ["posts/" + post.type + ".html", "posts/default.html"] %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
根据帖子的不同,它应该post在posts集合中呈现每个集合.type.我为每个人设置了不同的模板post.type.对于那些我没有模板的人,它会恢复到default帖子模板.
现在,我希望帖子的索引从帖子模板的底部显示,由提供loop.revindex.但出于某种原因,如果我loop.revindex在帖子模板中使用,我会收到错误说法UndefinedError: 'loop' is undefined.
那么,是loop不是在使用included模板?这是设计的吗?我是否在组织模板以使其无法使用时出错?
编辑好的,我在for循环中提出了一个解决方法,在我包含模板之前,我做了
{% set post_index = loop.revindex %}
Run Code Online (Sandbox Code Playgroud)
并post_index在帖子模板中使用.不理想,但似乎是唯一的方式.我仍然想知道你的解决方案.
编辑2的另一件事,我能够访问post内部变量included模板,而不是loop变量.
如果{% with %}声明可能的话.
试试这个:
{% with %}
{% set loop_revindex = loop.revindex %}
{% include ... %}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
不要loop.revindex在包含的模板中使用,而是使用loop_revindex.
| 归档时间: |
|
| 查看次数: |
3400 次 |
| 最近记录: |