0

我希望忽略数组中的一个值,因此这里只显示四个孩子中的三个。中有四个项目,page.root但我只想显示其中三个。

<nav role="navigation">
    <ul>
      {% for child in page.root %}
        <li>
          <a href="{{ child.url }}">{{ child.title }}</a>
        </li>
      {% endfor %}
    </ul>
</nav>

浏览文档我找不到限制for循环的方法。

谢谢您的帮助!

=============

对,我正在运行同样使用 Twig 的 Stacey 应用程序。对不起,我应该更具体。

使用 stacey, slice 是一种方法,因此可以解决我的问题:

<nav role="navigation">
    <ul>
      {% for child in slice (page.root, 0,3) %}
        <li>
          <a href="{{ child.url }}">{{ child.title }}</a>
        </li>
      {% endfor %}
    </ul>
</nav>

我在这里找到了。这仅正确输出 page.root 中的三个子项。

4

2 回答 2

0

“模板系统旨在表达演示而不是程序逻辑。” - Django 文档

所以,你可以使用 if 语句,

{% for child in page.root %}
  {% if child.title != 'any title' %}
  <li>
    <a href="{{ child.url }}">{{ child.title }}</a>
  </li>
  {% endif %}
{% endfor %}

欲了解更多信息

于 2013-01-20T15:43:44.707 回答
0

“仅打印前 n 个项目”的常见解决方案是slice过滤器:

{% for child in page.root|slice(0, 3) %}
    {# params are start and length, so that means the first 3 items #}
{% endfor %}
于 2013-01-20T16:31:33.607 回答