تگ 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 %}