Фильтры
Фильтр применяется к переменной через «|» внутри фигурных скобок. В одной конструкции можно использовать несколько фильтров — они применяются по очереди слева направо.
Фильтры для строковых переменных
- «upper» - преобразует текст в верхний регистр
{{ filter_ex1 }} --> {{ filter_ex1 | upper }}
Результат:
текст -> ТЕКСТ
- «lower» - преобразует текст в нижний регистр
{{ filter_ex2 }} --> {{ filter_ex2 | lower }}
Результат:
ТЕКСТ -> текст
- «upper_first» или «capitalize» - делает первую букву заглавной
{{ filter_ex1 }} --> {{ filter_ex1 | upper_first }}
Результат:
текст -> Текст
- «lower_first» - делает первую букву строчной
{{ filter_ex2 }} --> {{ filter_ex2 | lower_first }}
Результат:
ТЕКСТ -> тЕКСТ
- «trim» - удаляет пробелы в начале и конце строки
"{{ filter_ex3 }}" --> "{{ filter_ex3 | trim }}"
Результат:
« текст » -> «текст»
- «truncate(x)» - обрезает строку до длины x
{{ filter_ex1 }} --> {{ filter_ex1 | truncate(3) }}
Результат:
текст -> текст
- «replace('old', 'new')» - заменяет часть текста «old» на часть текста «new»
{{ filter_ex1 }} --> {{ filter_ex1 | replace('кст', 'пло') }}
Результат:
текст -> тепло
- «ip», «rp», «dp», «vp», «tp», «pp» - выводят текст в соответствующем падеже (в переменной нужно предварительно настроить падежи, см. «Настройка падежей»)
{{ filter_ex1 | ip }} - Именительный
{{ filter_ex1 | rp }} - Родительный
{{ filter_ex1 | dp }} - Дательный
{{ filter_ex1 | vp }} - Винительный
{{ filter_ex1 | tp }} - Творительный
{{ filter_ex1 | pp }} - Предложный
текст - Именительный
текста - Родительный
тексту - Дательный
текст - Винительный
текстом - Творительный
тексте - Предложный
- «urlencode» - кодирует строку для использования в URL
{{ filter_ex1 }} --> {{ filter_ex1 | urlencode }}
Результат:
текст -> %D1%82%D0%B5%D0%BA%D1%81%D1%82
- «wordcount» - подсчитывает количество слов в строке
{{ filter_ex1 }} --> {{ filter_ex1 | wordcount }}
Результат:
текст -> 1
- «nl2br» - заменяет переводы строк на теги
Может использоваться для размещения многострочного текста в ячейке таблицы
|До|
|---|
|{{ filter_ex4 }}|
|После|
|---|
|{{ filter_ex4 | nl2br }}|
Результат:

- «striptags» - удаляет HTML-теги из строки
{{ filter_ex4 }} --> {{ filter_ex4 | striptags }}
Результат:
Текст
в несколько
строк -> Текст в несколько строк
Фильтры для списков
- «first» - отображает первый элемент списка
{{ list_example | first }}
Результат:
красный
- «last» - отображает последний элемент списка
{{ list_example | last }}
Результат:
фиолетовый
- «join("Х")» - соединяет список в строку, разделяя элементы через Х
{{ list_example | join(", ") }}
Результат:
красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый
- «sort» - сортирует список по алфавиту
{{ list_example | sort | join(", ") }}
Результат:
голубой, желтый, зеленый, красный, оранжевый, синий, фиолетовый
- «unique» - удаляет дублирующиеся элементы из списка
{{ filter_list_ex1 | join }} --> {{ filter_list_ex1 | unique | join }}
Результат:
уунууиииннуниукннакклунинуил -> уникал
Числовые фильтры
{{ number_example }} -> {{ number_example | abs }}
{{ number_example }} -> {{ number_example | round(2) }}
Результат:
-3.14159 -> 3.14159
-3.14159 -> -3.14
Фильтры для даты
- «date(Х)» - форматирует дату по образцу Х
{{ date_example }} -> {{ date_example | date("YYYY: DD-MM") }}
{{ date_example }} -> {{ date_example | date("DD MMMM YYYY года") }}
Результат:
16.04.2077 -> 2077: 16-04
16.04.2077 -> 16 апреля 2077 года
Сокращенные версии форматов:
- date('iso') = date('YYYY-MM-DD')
- date('long') = date('D MMMM YYYY')
- «date_add(A=X)» - сдвигает дату на X дней, месяцев или лет (A — days, months или years; X может быть отрицательным)
{{ date_example }} -> {{ date_example | date_add(months = 2, years = -30) }}
Результат:
16.04.2077 -> 16.06.2047
- «date_diff(X)» - показывает, сколько дней прошло от даты X до даты, к которой применен фильтр
Начало: {{ date }}
Конец: {{ date_example }}
Прошло: {{ date_example | date_diff(date) }} дней
Результат:
Начало: 15.06.1999
Конец: 16.04.2077
Прошло: 28430 дней
Фильтры для нескольких типов переменных
- «reverse» - переворачивает строку или список
Тип переменных: string, list
{{ string_example | reverse }}
{{ list_example | reverse | join(", ") }}
Результат:
!dlrow ,olleH
фиолетовый, синий, голубой, зеленый, желтый, оранжевый, красный
- «length» - выводит число элементов списка или число символов в остальных переменных
Тип переменных: все
Количество символов в строке - {{ string_example | length }}
Количество элементов в списке - {{ list_example | length }}
Результат:
Количество символов в строке - 13
Количество элементов в списке - 7
-
«string» - преобразует значение в строку
Тип переменных: все -
«int» - преобразует значение в целое число
Тип переменных: все (значение должно иметь вид целого числа) -
«float» - преобразует значение в дробное число
Тип переменных: все (значение должно иметь вид действительного числа) -
«list» - преобразует значение в список
Тип переменных: string (строки разбиваются по символам)
Также может применяться для формирования списков объектов (подробнее см. «Создание списка объектов») -
«default(Х)» - выводит «Х», если переменная не заполнена
Тип переменных: все
{{ empty_string }} -->
{{ empty_string | default("Значение не заполнено") }}
Результат:
->
Значение не заполнено
- «escape» - экранирует HTML символы в строке
Тип переменных: string, list, nested_list
{{ filter_ex5 }} --> {{ filter_ex5 | escape }}
Результат:
Hello, world! -> <b>Hello, world!</b>
- «safe» - помечает строку как безопасную (не экранирует HTML)
Тип переменных: string, list, nested_list
{{ filter_ex5 }} --> {{ filter_ex5 | safe }}
Результат:
Hello, world! -> Hello, world!
Применение фильтров к строке
Фильтры можно применять не только к переменным, но и прямо к числам и тексту (текст берется в кавычки):
{{ "Оля" }} --> {{ "Оля" | reverse | lower | upper_first }}
{{ 3.14159 }} --> {{ 3.14159 | round(2) }}
Результат:
Оля -> Яло
3.14159 -> 3.14