Django Widget Tweaks

django-widget-tweaks позволяет легко добавлять CSS классы и HTML атрибуты к виджетам форм прямо в шаблонах.

Установка

1# Установка пакета
2pip install django-widget-tweaks
1# Или через Poetry
2poetry add django-widget-tweaks

Настройка

1# settings.py
2INSTALLED_APPS = [
3    'widget_tweaks',
4]

Использование в шаблонах

 1{% load widget_tweaks %}
 2
 3<!-- Добавление CSS класса -->
 4{{ form.title|add_class:"form-control" }}
 5
 6<!-- Добавление атрибутов -->
 7{{ form.email|attr:"placeholder:Введите email" }}
 8
 9<!-- Комбинирование -->
10{{ form.password|add_class:"form-control"|attr:"placeholder:Пароль" }}

Дополнительные возможности

 1<!-- Изменение типа поля -->
 2{{ form.search|attr:"type:search" }}
 3
 4<!-- Добавление data атрибутов -->
 5{{ form.field|attr:"data-toggle:tooltip" }}
 6
 7<!-- Добавление нескольких классов -->
 8{{ form.field|add_class:"form-control form-control-lg" }}
 9
10<!-- Добавление стилей -->
11{{ form.field|attr:"style:border-color: red;" }}

Работа с select полями

1<!-- Добавление CSS классов к select -->
2{{ form.category|add_class:"form-select" }}
3
4<!-- Добавление атрибутов -->
5{{ form.category|attr:"data-placeholder:Выберите категорию" }}

FAQ

Q: Можно ли использовать с crispy forms?
A: Да, widget-tweaks отлично дополняет crispy-forms.

Q: Как добавить несколько атрибутов?
A: Используй цепочку фильтров: |attr:"attr1:value1"|attr:"attr2:value2".