Проверка количества элементов в массиве в шаблоне Django - PullRequest
33 голосов
/ 09 ноября 2009

Я хочу посмотреть, больше ли число элементов в массиве в моем шаблоне Django 1. Могу ли я использовать следующий синтаксис для этого?

{% if {{myarr|length}} > 1 %}
<!-- printing some html here -->
{% endif %}

Спасибо

Ответы [ 5 ]

68 голосов
/ 14 апреля 2011

По состоянию на Джанго 1,2; , если поддерживает логические операции и фильтры, так что вы можете написать это как:

{% if myarr|length > 1 %}
<!-- printing some html here -->
{% endif %}

См. Документацию по проекту Django , если с фильтрами.

6 голосов
/ 09 ноября 2009

нет. но вы можете использовать django-раздражающий , и {% if myarr|length > 1 %} будет работать нормально.

4 голосов
/ 09 ноября 2009

Печально, но в теге django 'if' такой функциональности нет.Ходят слухи, что умнее, если тег будет добавлен в 1.2. , по крайней мере, в списке High priority.

В качестве альтернативы вы можете использовать тег smart_if из djangosnippets.com

ИЛИ вы можете добавить свой собственный фильтр (такой же, как фильтр length_is) - но он просто добавляет больше бесполезного кода: (

from django import template
register = template.Library()

def length_gt(value, arg):
    """Returns a boolean of whether the value is greater than an argument."""
    try:
        return len(value) > int(arg)
    except (ValueError, TypeError):
        return ''
length_gt.is_safe = False
register.filter(length_gt)

Для получения дополнительной информации обратитесь к djangoдокументы

2 голосов
/ 09 ноября 2009

Это одна из тех возможностей, которые не дает вам язык шаблонов Django. У вас есть несколько вариантов:

  1. Вычислите это значение в своем представлении и передайте его в шаблон в новой переменной.

  2. Установите дополнительную библиотеку тегов шаблонов, которая позволит вам получать более подробные сравнения, например: http://www.djangosnippets.org/snippets/1350/

  3. Используйте другой язык шаблонов в целом, если вы думаете, что вы часто будете сталкиваться с ограничениями языка шаблонов.

0 голосов
/ 09 ноября 2009

Может быть эта поможет?

Проверка размеров коллекции в шаблонах Django несколько ограничена. Единственное решение, которое я использовал, это передача другого параметра из представления в шаблон - но, честно говоря, если это зависит от того, чего вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...