Данная статья предназначена для тех, кто не очень любит возиться с документацией.
1. for…empty
Тег for
может иметь необязательный элемент {% empty%}
, текст которого отображается, если имеющийся массив пуст или не может быть найден:
{% for student in student_list %} ... {% empty %} ... {% endfor %}
Это эквивалентно следущему коду:
{% if student-list %} {% for student in student_list %} ... {% endfor %} {% else %} ... {% endif %}
2. lorem
Нет, вам не нужны никакие другие пакеты для использования текста lorem. Данный тег отображает на экране известный псевдолатинский текст “lorem ipsum”. Это иногда бывает полезным для заполнения шаблонов примерными данными, если конечно у вас пока нет никаких других данных.
{% lorem [count] [method] [random] %}
Напрмер:
{% lorem %}
выведет обычный абзац «lorem ipsum»;{% lorem 3 p %}
выведет обычный абзац «lorem ipsum» и два случайных абзаца, каждый из которых заключен в теги HTML <p>;{% lorem 2 w random %}
выведет два случайных латинских слова;
3. now
Отображает текущую дату и / или время в формате, соответствующем заданной строке. Такая строка может содержать символы спецификаторов в формате, описанном в разделе фильтра даты.
{% npw "jS F Y" %}
4. resetcycle
Сбрасывает предыдущий цикл таким образом, чтобы при следующем вызове он начинал работу с первого элемента. Без аргументов тег {% resetcycle%}
сбросит последний цикл {% cycle%}
, который определен в данном шаблоне.
{% for coach in coach_list %} {{ coach.name }} {% for athlete in coach.athlete_set.all %} <p class="{ cycle 'odd' 'even' }> {{ athlete.name }} </p> {% endfor %} {% resetcycle %} {% endfor %}
Данный пример вернет следующий HTML код:
<h1>José Mourinho</h1> <p class="odd">Thibaut Courtois</p> <p class="even">John Terry</p> <p class="odd">Eden Hazard</p> <h1>Carlo Ancelotti</h1> <p class="odd">Manuel Neuer</p> <p class="even">Thomas Müller</p>
5. verbatim
- Останавливает рендеринг содержимого данного тега;
- обычно используется для разрешения конфликтов с объектом layer JavaScript, который часто конфликтует с синтаксисом Django
Например:
{% verabtim %} {{ if dying }} Still alive. {{/if}} {% endverbatim %}
Вы также можете назначить специальный закрывающий тег, позволяющий использовать {% endverbatim %}
как часть неотрисованного контента:
{% verbatim myblock %}
Избегайте рендеринга шаблонов через:
{% verbatim %} {% endverbatim %} block. {% endverbatim myblock %}
6. widthratio
При создании гистограмм и подобных объектов, этот тег вычисляет отношение данного значения к максимальному значению, а затем умножает это отношение на максимальную ширину.
<img src="#" alt="Imagine an image here" height="10" width="{ % widthratio this_value max_value max_width % }">
Если this_value
равно 175, max_value
равно 200, а max_width
равно 100, изображение в приведенном выше примере будет иметь ширину 88 пикселей (потому что 175/200 = 0,875; 0,875 * 100 = 87,5, округляется до 88).
В некоторых случаях вы можете захотеть сохранить результат вычисления ширины в переменной. Это можно сделать, например, следующим образом:
{% widthratio this_value max_value max_width as width %} {% blocktrans %}The width is: {{ width }}{%endblocktrans%}