【问题标题】:check if a number is present in a list, app engine templates检查列表中是否存在数字,应用引擎模板
【发布时间】:2023-03-31 16:30:01
【问题描述】:

我正在尝试使用应用引擎模板和 html 表生成一个板 (10X10)。所以这基本上意味着在循环的 10 次迭代后中断。如何使用应用引擎的内置模板引擎 (django 0.96) 实现这一点?

更新

Lukes answer 解决了我自动插入中断的问题。
但是我仍然需要找到一种方法来检查每个数字是否存在于列表中并给它一个特定的类。有什么办法可以实现这样的:

{% for number in list }
  <td {% if number in another_list %}class="special"{% endif %}>{{number}}</td>
{% endfor }

【问题讨论】:

    标签: python google-app-engine loops django-templates conditional-statements


    【解决方案1】:

    0.96 的模板标签是否有divisibleby?这似乎可以解决问题:

    {% for end_number in end_numbers %}
        {% if forloop.counter|divisibleby:"10" %}
          </tr>
        {% endif %}
    {% endfor %}
    

    【讨论】:

    • 太好了 - 很高兴我能帮上忙。 :)
    【解决方案2】:

    此时您最好编写自己的模板标签,或者使用类似smartif 的东西,这样您就可以使用{% if foo in bar %}

    【讨论】:

    • 我考虑过,但是如何加载自定义模板标签?
    • 在您的项目下创建一个名为 templatetags 的模块,并在其中放置一个类似 smartif.py 的文件 - 在其中粘贴 smartif 代码。然后,在您的模板中,您可以使用{% load smartif %} 来加载标签。
    • 我用空的 init.py 和 smartif.py 创建了一个目录模板标签,但它不起作用:(
    • 定义“不起作用” - 有错误吗?你的页面还显示吗?
    • 否,模板语法错误:找不到模板标签库错误
    【解决方案3】:

    您应该对代码中的数据进行预处理,以便在模板中更容易使用。将包含 100 个元素的数组分解为包含 10 个数组的嵌套数组,每个数组包含 10 个元素,并提供所需的信息以将 CSS 类分配给它们。

    【讨论】:

      【解决方案4】:

      包括一个计数器 (i),它在每个循环期间递增,并使用 if 语句将 i 重置为 1,并在达到 10 时绘制中断。

      【讨论】:

        猜你喜欢
        • 2011-07-01
        • 2011-11-20
        • 1970-01-01
        • 2015-12-22
        • 2011-09-07
        • 1970-01-01
        • 2019-02-08
        • 2015-01-15
        • 1970-01-01
        相关资源
        最近更新 更多