0

以下のコードが current_count 変数に値を追加していない理由を説明してください。また、django バージョン 1.3 を使用しています。以下のコードは、次の出力を提供します。

0

"画像"

10

"画像"

10

"画像"

. . .

「画像」とは、実際の画像が表示されていることを意味します。

私が欲しいのは「4つの画像のみを表示する」です。

{% with current_count=0 %}
    {% for row in people|slice:":4" %}
        {% if row %}
            {% for event in row %}
                {% if current_count < 4 %}
                    {{current_count}}
                    <div class="latest-photos-image-box">
                        <a href="{{ event.get_absolute_url }}"><img src="{{ event.mainthumb.url }}" alt="{{ event.title }}" /></a>
                    </div>
                {% endif %}
                {{ current_count|add:"1" }}
            {% endfor %}
        {% endif %}
    {% endfor %}
{% endwith %}
4

2 に答える 2

0
{% for event in row|slice:":4" %}

そして、残りを取り除きます。

于 2013-07-09T17:08:22.933 に答える
0

ここでの問題{{ current_count|add:"1" }}は、追加はしますが、何も保存しないことです。forloop.counter代わりにループ カウンターを使用してください。

ただし、ネストレベルに関係なく機能するカウンターが必要な場合。ここにレシピがあります(テストしていませんが、動作するはずです):

>>> def monotonic():
...    count = 0
...    while True:
...       yield count
...       count += 1
... 
>>> counter = monotonic()
>>> # pass it to you request context dictionary

必要なときにいつでも使用{{ counter.next }}できます。

この質問も確認してください: Flatten list of lists。行のリストをフラット化して、スライスできるより単純な人のリストにしたい場合があります。

于 2013-07-13T08:49:37.180 に答える