我的 jinja 模板之一中有类似于以下的代码
{% for post in posts %}
{% include ["posts/" + post.type + ".html", "posts/default.html"] %}
{% endfor %}
根据帖子的不同,它应该post
在集合中呈现每个。我为每个. 对于那些我没有模板的人,它会恢复为帖子模板。posts
.type
post.type
default
现在,我希望在帖子模板内从底部显示帖子的索引,该模板由loop.revindex
. 但由于某种原因,如果我loop.revindex
在帖子模板中使用,我会收到一条错误消息UndefinedError: 'loop' is undefined
。
那么,是loop
不是在include
d模板中不可用?这是设计使然吗?我在组织模板的方式上是否做错了,以使其不可用?
编辑好吧,我想出了一个解决方法,在 for 循环中,在我包含我的模板之前,我做
{% set post_index = loop.revindex %}
并post_index
在帖子模板中使用。不理想,但似乎是唯一的方法。不过,我仍然想知道您的解决方案。
编辑 2另一件事,我可以访问d 模板中的变量,但不能访问该post
变量。include
loop