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 回答