Django template - list empty 처리

Django template - list empty 처리
Photo by John Cameron / Unsplash

빈 리스트를 장고 템플릿에서 표현하는 방법은 아래 처럼 {% empty %} 구문을 활용하자!

    {% for item in itemlist %}
    {% if item.is_deleted == 1 %}
    {% else %}
    {% now "Y-m-d" as todays_date %}
    <tr class="align-middle">
        <td class="white-space-nowrap ps-0">
            <a href="{% url 'orderitem_view' pk=item.id %}">{{ item.id }}</a>
        </td>
        <td class="align-middle" >
            <p class="mb-0">{{ item.product }}</p>
        </td>
        <td class="align-middle text-end" >
            <p class="mb-0">{{ item.date_due | date:"m-d"}}</p>
        </td>
        <td class="align-middle text-end" >
            <p class="mb-0">{{ item.quantity|intcomma }}</p>
        </td>
        <td class="align-middle text-end" >
            <p class="mb-0">{{ item.workline }}</p>
        </td>
    {% endif %}
    </tr>
    {% empty %}
    <tr class="align-middle">
        <td colspan="5" class="align-middle text-center" >출고예정 주문이 없습니다.</td>
    </tr>
    {% endfor %}

코드에 편리한 게 하나 더 있네 😀 intcomma 도 활용하면 숫자에 콤마를 찍어줘서 읽기 편하게 해준다. 이건 다른 포스팅에서 참고하세요.

혹은 {% if %} 구문으로도 판단할 순 있다. 원본은 여기 https://docs.djangoproject.com/en/4.0/ref/templates/builtins/

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% else %}
    No athletes.
{% endif %}