0

配列の値を無視して、4つの子のうち3つだけがここに表示されるようにします。中には4つのアイテムがありますがpage.root、そのうちの3つだけを表示したいと思います。

<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に子が3つだけ正しく出力されます。

4

2 に答える 2

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 に答える
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 に答える