在文章索引中,我想顯示給定文章的第一張照片。照片是在另一個模型中有外鍵來模擬文章的位置。因此,我從給定類別中選擇應該顯示的文章,然後選擇給定類別中的所有照片,並在模板中匹配它們的slu and,然後我(想要)只顯示第一個結果。forloop.counter不會在我的Django模板中按預期重置
但我用於此目的forloop.counter不按預期工作。當它通過endfor標記時,它將繼續而不重新設置。
例如代替:「1,2,3,endfor,1,2,3,4,5,endfor,1,2,3,4」它計數:「1,2,3,endfor, 4,5,6,7,8,endfor,9,10,11,12「
我想念什麼?
這裏的模板代碼:
{% extends 'index.html' %}
{% load markup %}
{% load thumbnail %}
{% block content %}
{% for itm in plays %}
<h2>{{ itm.name }}</h2>
<div>{{ itm.desc }}</div>
<div>
{% for ftk in photos %}
{% if ftk.nameofplay.slug == itm.slug %}
{% if forloop.counter == 1 %}
{% thumbnail ftk.photo "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
{% endif %}
{% endif %}
{% endfor %} {# forloop.counter should reset here and start from 1 again. or not? #}
</div>
<div>{{ itm.text|markdown|truncatewords_html:25 }}</div>
{% endfor %}
{% endblock %}
和views.py我送一些像這樣的:
plays = Plays.objects.filter(category__slug__exact = category)
photos = Photos.objects.filter(nameofplay__category__slug__exact = category)
謝謝!
正確的答案是從@滾動的石頭;但是爲了將來的參考 - ['forloop.first'](http:// https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#for)和['forloop.last'](https ://docs.djangoproject.com/en/1.3/ref/templates/builtins/#for)將有助於__ loop_邏輯的第一個實例。 – 2012-02-07 11:30:56