У меня есть список в моем шаблоне Django. Я хочу сделать что-то, только если размер списка больше нуля.
Я попробовал myList|length
и , myList|length_is
но они не увенчались успехом.
Я искал по всему и не вижу примеров. Как я могу это проверить?
У меня есть список в моем шаблоне Django. Я хочу сделать что-то, только если размер списка больше нуля.
Я попробовал 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 %}
length
Фильтр также , кажется, работает в условных блоках. напр.{% if athlete_list|length > 1 %}...{% endif %}
Если вы используете недавний Django, в списке изменений 9530 появился блок {% empty%}, позволяющий писать
{% for athlete in athlete_list %}
...
{% empty %}
No athletes
{% endfor %}
Полезно, когда вы хотите выполнить итерации по непустому списку.
Если вы пробовали myList | length и myList | length_is и не получили желаемых результатов, вам следует использовать myList.count
Collection.count без скобки
{% 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>