使用 Jinja 循环项目,每 5 个项目后添加 div

2024-01-01

Problem

我有 100 个高尔夫球场的列表,我希望插入一个 div,其中每五个球场后包含一个广告图像。我该怎么做呢?

更新#1

content.html(修订后的最新版本)

  • 我已经更新了我的原始代码片段,因为 leovp 的 建议在下面编辑。我无法仅显示{% if content.featured == "Test" %}并想知道我应该如何结束我的 if-else 语句。

        {% for content in COPY.courses %}
                <div class="course course--featured">
                    <a href=""><img src="" class="course__image image--region"></a>
    
                    <div class="course__inner">
                        <div class="course__wrapper">
                            {% if content.state == "MO" %}
                                <p class="course__state">Missouri</p>
                            {% elif content.state == "IL" %}
                                <p class="course__state">Missouri</p>
                            {% endif %}
                        </div>
    
                        <div class="course__wrapper">
                            <a href=""><p class="course__name name--region">{{ content.name }}</p></a>
                        </div>
                        <p class="course__desc">{{ content.description }}</p>
                    </div>
                </div>
    
        {% if loop.index % 5 == 0 %}
        <div class="advertising advertising--inline">
            <div class="ad ad--rect">
    
                <div class="text-center hidden-xs">
                    <div id="fixed-leaderboard-region-top"
                        class="dfp-ad"
                        data-dfp-custom-pos="fixed-leaderboard-top, htf"
                        data-dfp-size="[728,90]">
                    </div>
                </div>
    
                <div class="text-center hidden-sm hidden-md hidden-lg">
                    <div id="fixed-leaderboard-region-top-mobile"
                        class="dfp-ad"
                        data-dfp-custom-pos="fixed-leaderboard-top, htf"
                        data-dfp-size="[320,50]">
                    </div>
                </div>
            </div>
        </div>
        {% endif %}
        {% endfor %}
    </div>
    

content.html(以前的旧版本用于比较)

  • 我研究过使用batch http://jinja.pocoo.org/docs/2.9/templates/#batch来自这个堆栈溢出question https://stackoverflow.com/questions/17797921/jinja2-create-new-row-for-every-3-items这看起来很相似,但我不确定这是否能解决我的问题?

    {% COPY.courses 中的内容 %} {% if content.featured == "测试" %}

    <div class="course__inner">
        <div class="course__wrapper">
            {% if content.state == "MO"%}
            <p class="course__state">Missouri</p>
            {% elif content.state == "IL" %}
            <p class="course__state">Illinois</p>
            {% endif %}
        </div>
    
        <div class="course__wrapper">
            <a href=""><p class="course__name name--home">{{ content.name }}</p></a>
        </div>
        <p class="course__desc">{{ content.description }}</p>
    </div>
    

    {% 万一 %} {% 结束 %}


迭代时,您可以获取当前索引并检查它是否能被 5 整除:

{% set count = 0 %}
{% for content in COPY.courses %}
{% if content.featured == "Test" %}
<div class="course course--featured">
    <a href=""><img src="" class="course__image image--home"></a>
    [...]
    </div>
</div>

{% set count = count + 1 %}
{% if count % 5 == 0 %}
    <!-- additional content once every 5 courses -->
{% endif %}
{% endif %}
{% endfor %}

注意:此方法在 2.10 版本之后不再有效。

详细请参见:如何在 jinja 模板中的 for 循环上增加变量? https://stackoverflow.com/questions/7537439/how-to-increment-a-variable-on-a-for-loop-in-jinja-template

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Jinja 循环项目,每 5 个项目后添加 div 的相关文章

随机推荐

  • JAXB2 类型限制不起作用?

    我在github上建立了一个测试单元 有人可以检查为什么这不起作用 尽管要解组的 XML 看起来不错吗 https github com jjYBdx4IL misc tests blob master src test java jjyb
  • Objective-C++ 是一种与 Objective-C 完全不同的语言吗?

    正如标题所说 它们被视为不同的语言吗 例如 如果您使用 C 和 Objective C 的组合编写了一个应用程序 您会认为它是用 C 和 Objective C C 和 Objective C 还是全部三种语言编写的 显然 C 和 C 是不
  • 如何模拟慢速客户端(浏览器)?

    有什么办法可以减慢客户端 浏览器 的响应速度吗 我们的一位测试人员可以在他的机器上重现缓慢的情况 他的机器规格足够低 与许多真实客户相似 我们有一个胖客户端 大量的 JavaScript 大量的事件处理 我们担心可能会出现回归 但它在开发人
  • 我应该将所有 WCF 服务代码包装在 try catch 块中吗?

    try here is the code that might throw erros If I discover the user is unauthorized I throw a WebFaultException myself to
  • 查找 Mac OSX 上当前聚焦的应用程序窗口

    我正在编写一个桌面使用情况统计应用程序 它运行一个后台守护程序 该守护程序定期唤醒 查找当前焦点的应用程序窗口的名称并将该数据记录在数据库中 我设法在 xprop 实用程序的帮助下在 Linux 桌面上执行此操作 您可以找到它here ht
  • Pytest 捕获不起作用 - caplog 和 capsys 为空

    我正在尝试为记录器创建单元测试 但是 即使事件已记录 caplog and capsys保持空白 我究竟做错了什么 原来我的记录器有财产propagate set to False 结果 事件没有转发到LogCaptureHandler由
  • 新的 Safari 7 用户代理字符串

    我真的不想在这里打扰你 但由于我没有 Mac 我无法对此进行测试 我制作了一个浏览器嗅探类 我知道它很糟糕 但它运行良好并且不是重点 这一切都工作正常 但是我的同事说我最近做的一个网站上有一个错误 我想知道 查看的是是否有指向任何记录 原始
  • Chrome 开发工具:时间线 - 白条

    我试图了解有关 Chrome 开发工具中时间线的一些事情 来自文档 https developer chrome com devtools docs timeline about clear or light gray frames 我认为
  • 如何从我的 qt 项目引用 qjson.dll 文件?

    如何从 qt 项目之一引用 qjson dll 文件 例如 C qjson 0 7 1 qjson build lib 在这个位置 我有 qjson dll 和 qjson dll a 文件 我想使用我的 qt 项目中的 dll 我应该如何
  • 为什么复选框单击事件上的 PreventDefault 对选中的属性返回 true?

    我只是好奇 需要对以下情况进行一些解释 假设我有一个复选框类型的输入元素 并附加了一个事件监听器 用于监听单击事件 我阻止复选框的默认行为并记录复选框的选中状态 该状态将始终返回 true 复选框的视觉表示告诉我它没有被选中 所以我假设检查
  • 在 Travis 上安装最新版本的 Firefox 并使用 Protractor 运行

    Travis 默认安装 Firefox 31 0esr 但我们希望始终使用最新版本 这参考 https docs travis ci com user firefox Selecting a Firefox version这里说它应该非常简
  • 从 python 中的 while 循环内部返回值

    我不知道这是一个简单的问题还是不可能的问题或什么 但我找不到任何内容 所以我想我会问它 当循环仍在运行时 是否可以从 while 循环返回值 基本上我想要做的是让向量在 while 循环内不断更新 但能够在询问时返回值而不停止 while
  • 带有自定义标头的 Ajax 请求发送到启用了 CORS 的 Web API 服务器

    我正在尝试正确设置 Web API Web 服务以使用 CORS 但最近运气不佳 我有一个来自移动应用程序的 html 页面 使用 ajax 请求来获取一些数据 Webservices GetUserLevel function var u
  • 如何使用跨列通过列索引而不是列名来改变多个列?

    基于这个问题 R dplyr 对列索引进行变异 https stackoverflow com questions 43137868 r dplyr mutate on column index dplyr 如何使用 mutate 按列索引
  • Win7 中的 Python 3.4.0 无法安装 NumPy

    我查看了之前的相关帖子 评论者说 你为什么不使用 Windows 安装程序 所以我按照链接下载了https pypi python org packages 3 4 n numpy numpy 1 8 1 cp34 cp34m macosx
  • 为 Windows Mobile 编译时找不到引用的程序集

    我决定使用tessnet2 http www pixel technology com freeware tessnet2 我的 Windows Mobile 6 项目的库 不幸的是 当我尝试编译它时 它抛出一个错误 tessnet2 Te
  • 如何根据列的变化值对记录进行分组/排名?

    我有下表按 ID 年份 DESC 排序 Id Year Valid 1 2011 1 1 2010 1 1 2009 0 1 2002 1 4 2013 1 4 2012 1 4 2011 1 etc 我想要的是一个额外的排名字段 例如 I
  • 将 google play 服务添加到项目后无法运行项目

    我正在制作一个需要谷歌地图的Android应用程序 我在 Eclipse 中创建了一个新项目并在 Android 手机上编译它 它工作了 但是当我将 google play services lib 导入到我的工作区并在我的项目中添加对它的
  • 如何添加监听多个按钮的动作监听器

    我试图找出我对动作监听器做错了什么 我正在遵循多个教程 但当我尝试使用操作侦听器时 netbeans 和 eclipse 给了我错误 下面是一个简单的程序 我试图让一个按钮在其中工作 我究竟做错了什么 import java awt eve
  • 使用 Jinja 循环项目,每 5 个项目后添加 div

    Problem 我有 100 个高尔夫球场的列表 我希望插入一个 div 其中每五个球场后包含一个广告图像 我该怎么做呢 更新 1 content html 修订后的最新版本 我已经更新了我的原始代码片段 因为 leovp 的 建议在下面编