Link Search Menu Expand Document

Директивы, теги и фильтры

В шаблонах можно вызывать функции. Для этого в файле models.py создадим функцию в классе выводимой модели:

def my_func(self):
    return 'Hello from model'

Для того чтобы вызвать эту функцию в шаблоне необходимо выполнить:

{{ item.my_func }}

Также можно обращаться к методам объекта. Например:

{{ news.count}}

Выведет общее количество добавленных элементов в объект. Все методы вызываются без параметров. Вызов функций с параметрами не предусмотрен.

Теги

ТегОписаниеСсылка на пример использования
autoescapeКонтролирует автоэкранирование HTML в текстеСсылка
blockВставка шаблона в другой шаблонСсылка
csrf_tokenВывод специального токена для формСсылка
cycleОрганизация циклов. Например для чередования цветов строк в таблице. В качестве аргументов передаются названия классовСсылка
extendsНеобходим для наследования шаблоновСсылка
filterНужен если необходимо назначить фильтр для блока выводаСсылка
forОрганизация циклаСсылка
ifДанный тег позволяет проверить факт отличного от False значения у переменнойСсылка
loremГенерирует случайный набор текстаСсылка
nowВыводит текущую дату и времяСсылка

Добавление фотографий на сайт

Если у нас загружены для некоторых объектов фотографии (не для всех), то в шаблон необходимо вставить следующий код:

{% if item.photo %}
<img src="{{ item.photo.url }}" alt="" width="350" class="mr-3">
{% else %}
<img src="https://picsum.photos/id/1060/350/235/?blur=2" alt="" width="350" class="mr-3">
{% endif %}

Блок {% if item.photo %} используется для того чтобы при отсутствии загруженного изображения отображалось некое стандартное изображение.

Фильтры

ФильтрПримерОписание
add{{ value|add:"2" }}Прибавляет число к значению
addslashes{{ value|addslashes }}Экранирует слэши
capfirst{{ value|capfirst }}Преобразует первый символ аргумента в верхний регистр
cut{{ value|cut:" " }}Удаляет значение аргумента из строки
date{{ value|date:"D d M Y" }}Возвращает форматированную дату
default{{ value|default:"nothing" }}если у value значение False, то к нему будет применено значение по умолчанию
default_if_none{{ value|default_if_none:"nothing" }}если у value значение none, то к нему будет применено значение по умолчанию
divisibleby{{ value|divisibleby:"3" }}Возвращает True если значение делится на аргумент
escape{{ title|escape }}Экранирование HTML
escapejs{{ value|escapejs }}Экранирует JavaScript
filesizeformat{{ value|filesizeformat }}Форматирует вывод размера файла
first{{ value|first }}Возвращает первый элемент списка
floatformat{{ value|floatformat:3 }}Предназначен для форматирования чисел с плавающей точкой. Позваляет указать кол-во знаков после запятой.
get_digit{{ value|get_digit:"2" }}Возвращает указанную цифру справа. Например для числа 123456789 вернется 8
join{{ value|join:" // " }}Объединяет списки, аналог метода join в Python
length{{ value|length }}Возвращает количество элементов в значении
length_is{{ value|length_is:"4" }}Позволяет проверить равен ли размер значения аргументу
linebreaks{{ value|linebreaks }}Заменяет переносы строк на параграфы
linebreaksbr{{ value|linebreaksbr }}Заменяет переносы строк на <br />
lower{{ value|lower }}отображает текст в нижнем регистре
make_list{{ value|make_list }}Превращает значение в список
phone2numeric{{ value|phone2numeric }}Преобразует номер телефона содержащий буквы в его числовой эквивалент. Например 800-COLLECT будет преобразован 800-2655328
safe{{ var|safe|escape }}Позволяет выполняться HTML коду
slugify{{ value|slugify }}Из строки возвращает слаг (заменяет пробелы знаком -). Необходимо для URL адресов
time{{ value|time:"H:i" }}Форматирует время
timesince{{ blog_date|timesince:comment_date }}Возвращает сколько времени прошло с даты до указанной (либо до текущей если нет аргументов)
timeuntil{{ conference_date|timeuntil:from_date }}То же самое что и timesince, только больше для минут, а не дней
title{{ value|title }}Преобразует первую букву кажого слова в заглавную, остальные в прописные
truncatechars{{ value|truncatechars:7 }}Образает значение до указанного количества букв
truncatechars_html{{ value|truncatechars_html:7 }}Образает значение до указанного количества букв и закрывает открытые теги
truncatewords{{ value|truncatewords:2 }}Образает значение до указанного количества слов
truncatewords_html{{ value|truncatewords_html:2 }}Образает значение до указанного количества слов и закрывает открытые теги