تگ For
تگ {% for %} برای اجرای یک حلقه روی مجموعهای از دادهها (مثل لیست، دیکشنری، QuerySet و ...) استفاده میشود. در هر تکرار حلقه، ویژگیهای آیتم جاری در یک متغیر محلی در دسترس قرار میگیرد.
{% for item in list %}
{{ item }}
{% endfor %}
در جنگو میتوان با استفاده از کلمهی کلیدی reversed حلقهی for را بهصورت معکوس اجرا کرد.
{% for item in list reversed %}
{{ item }}
{% endfor %}
با استفاده از {% empty %} میتوان مشخص کرد اگر لیست خالی بود چه چیزی نمایش داده شود
<ul>
{% for name in names %}
<li>{{ name }}</li>
{% empty %}
<li>No Body Found</li>
{% endfor %}
</ul>
━◦○◦ نکتههای تکمیلی ◦○◦━
داخل حلقهی for، جنگو یک متغیر ویژه به نام forloop در اختیار میگذارد که اطلاعات مفیدی دارد:
⮜ forloop.counter 🡠 شماره آیتم (شروع از 1)
⮜ forloop.counter0 🡠 شماره آیتم (شروع از 0)
⮜ forloop.first 🡠 درست (True) اگر اولین آیتم باشد
⮜ forloop.last 🡠 درست (True) اگر آخرین آیتم باشد
⮜ forloop.revcounter 🡠 شمارش معکوس (شروع از تعداد آیتمها)
{% for name in names %}
{% if forloop.first %}
<strong>First Person: {{ name }}</strong><br>
{% elif forloop.last %}
<em>Last Person: {{ name }}</em><br>
{% else %}
{{ forloop.counter }} - {{ name }}<br>
{% endif %}
{% endfor %}