[django] Django 템플릿 내에서 컬렉션의 크기를 어떻게 확인할 수 있습니까?

Django 템플릿에 목록이 있습니다. 목록의 크기가 0보다 큰 경우에만 무언가를하고 싶습니다.

나는 시도 myList|length하고 myList|length_is있지만 성공하지 않았습니다.

나는 모든 곳을 수색했지만 어떤 예도 보이지 않습니다. 이것을 어떻게 확인할 수 있습니까?



답변

참조 https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if을 : 단지 사용을, 자신의 예를 재현 :

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


답변

최근 장고를 사용하는 경우 changelist 9530 은 {% empty %} 블록을 도입하여

{% for athlete in athlete_list %}
  ...
{% empty %}
  No athletes
{% endfor %}

당신이하고 싶은 일이 비어 있지 않은 목록을 반복 할 때 유용합니다.


답변

목록에 False요소가 없으면 다음과 같이 할 수 있습니다.

{% if mylist %}
    <p>I have a list!</p>
{% else %}
    <p>I don't have a list!</p>
{% endif %}


답변

myList | length 및 myList | length_is를 시도했지만 원하는 결과를 얻지 못하면 myList.count


답변

당신은 시도 할 수 있습니다 :

{% if theList.object_list.count > 0 %}
    blah, blah...
{% else %}
    blah, blah....
{% endif %} 


답변

수집 횟수 대괄호

{% if request.user.is_authenticated %}
{{wishlists.count}}
{% else %}0{% endif %}


답변

테이블을 렌더링해야하는지 여부를 결정하려면 컬렉션 길이가 필요합니다. <thead></thead>

그러나 @Django 2.1.7 이 선택한 답변이 forloop나중에 실패하는 이유를 모릅니다 .

나는 {% if forloop.first %} {% endif %}극복하기 위해 사용해야 했다 :

<table>
    {% for record in service_list %}
        {% if forloop.first %}
            <thead>
            <tr>
                <th>日期</th>
            </tr>
            </thead>
        {% endif %}
        <tbody>
        <tr>
            <td>{{ record.date }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>