📝 Django

Фильтры шаблонов Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
80
🌿
Уровень
Средний
🐦 💼 ✈️

Фильтры применяются через | к переменным в шаблоне.

Строки

{{ name|lower }}              <!-- dmitrii -->
{{ name|upper }}              <!-- DMITRII -->
{{ name|title }}              <!-- Dmitrii Masliaev -->
{{ name|capfirst }}           <!-- Dmitrii -->
{{ text|truncatewords:10 }}   <!-- первые 10 слов... -->
{{ text|truncatechars:50 }}   <!-- первые 50 символов... -->
{{ text|wordcount }}          <!-- количество слов -->
{{ html|striptags }}          <!-- убрать HTML теги -->
{{ text|linebreaks }}         <!-- \n → <p> -->
{{ text|linebreaksbr }}       <!-- \n → <br> -->

Числа

{{ price|floatformat:2 }}     <!-- 1234.56 -->
{{ count|pluralize }}         <!-- "s" или "" -->
{{ count|pluralize:"ий,ия,ий" }} <!-- склонение -->
{{ number|filesizeformat }}   <!-- 1.2 MB -->

Даты

{{ date|date:"d.m.Y" }}       <!-- 15.01.2024 -->
{{ date|date:"d M Y" }}       <!-- 15 Jan 2024 -->
{{ date|time:"H:i" }}         <!-- 10:30 -->
{{ date|timesince }}          <!-- 3 дня назад -->
{{ date|timeuntil }}          <!-- через 2 дня -->

Списки и словари

{{ items|length }}            <!-- количество элементов -->
{{ items|first }}             <!-- первый -->
{{ items|last }}              <!-- последний -->
{{ items|join:", " }}         <!-- через запятую -->
{{ items|slice:":3" }}        <!-- первые 3 -->
{{ items|dictsort:"name" }}   <!-- сортировка по полю -->

Логика и отображение

{{ value|default:"не указано" }}    <!-- если False/None/пусто -->
{{ value|default_if_none:"N/A" }}   <!-- только если None -->
{{ value|yesno:"да,нет,не знаю" }} <!-- True/False/None -->

Безопасность

{{ html|safe }}               <!-- не экранировать HTML -->
{{ text|escape }}             <!-- экранировать (по умолчанию) -->
{{ text|urlize }}             <!-- URL в ссылки -->

Кастомный фильтр

# templatetags/my_filters.py
from django import template
register = template.Library()

@register.filter
def priority_label(value):
    labels = {1: 'Низкий', 2: 'Средний', 3: 'Высокий'}
    return labels.get(value, value)
{% load my_filters %}
{{ task.priority|priority_label }}

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 85
📝

Django: Статические файлы

Статические файлы — CSS, JavaScript, изображения, шрифты. Django обрабатывает их особым образом: в разработке раздаёт...

📅 30.06.2026 👁️ 77

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!