gpt4 book ai didi

python - Jinja 的循环变量在 include-d 模板中不可用

转载 作者:太空狗 更新时间:2023-10-29 17:50:02 26 4
gpt4 key购买 nike

我的一个神社模板中有类似于以下的代码

{% for post in posts %}
{% include ["posts/" + post.type + ".html", "posts/default.html"] %}
{% endfor %}

它应该根据帖子的 .type 呈现 posts 集合中的每个 post。我为每个 post.type 设置了不同的模板。对于那些我没有模板的人,它会恢复为 default 帖子模板。

现在,我希望帖子的索引从底部显示在帖子模板内,它由 loop.revindex 提供。但出于某种原因,如果我在帖子模板中使用 loop.revindex,我会收到一条错误消息,提示 UndefinedError: 'loop' is undefined

那么,loop 是否在 include 模板中不可用?这是设计使然吗?我是不是在组织模板以使其不可用时做错了什么?

编辑 好吧,我想出了一个解决方法,在 for 循环中,在我包含我的模板之前,我这样做了

{% set post_index = loop.revindex %}

并在帖子模板中使用 post_index。不理想,但似乎是唯一的方法。不过,我仍然想知道您的解决方案。

编辑 2 另外一件事,我可以访问 included 模板中的 post 变量,但不能访问 循环变量。

最佳答案

如果可能的话 {% with %}声明。

试试这个:

{% with %}
{% set loop_revindex = loop.revindex %}
{% include ... %}
{% endwith %}

不要在包含的模板中使用 loop.revindex,而是使用 loop_revindex

关于python - Jinja 的循环变量在 include-d 模板中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com