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