Django Crispy Forms
django-crispy-forms позволяет легко создавать красивые формы с Bootstrap стилизацией.
Установка
Настройка
Использование в формах
1# forms.py
2from crispy_forms.helper import FormHelper
3from crispy_forms.layout import Submit
4
5class BookForm(forms.ModelForm):
6 def __init__(self, *args, **kwargs):
7 super().__init__(*args, **kwargs)
8 self.helper = FormHelper()
9 self.helper.add_input(Submit('submit', 'Сохранить'))
10
11 class Meta:
12 model = Book
13 fields = ['title', 'author']
В шаблоне
Кастомизация layout
1from crispy_forms.layout import Layout, Fieldset, Row, Column
2
3class BookForm(forms.ModelForm):
4 def __init__(self, *args, **kwargs):
5 super().__init__(*args, **kwargs)
6 self.helper = FormHelper()
7 self.helper.layout = Layout(
8 Fieldset(
9 'Основная информация',
10 Row(
11 Column('title', css_class='form-group col-md-8'),
12 Column('author', css_class='form-group col-md-4'),
13 css_class='form-row'
14 ),
15 'description'
16 ),
17 Submit('submit', 'Сохранить', css_class='btn btn-primary')
18 )
FAQ
Q: Как кастомизировать layout?
A: Используй Layout, Fieldset, Row, Column в helper.
Q: Можно ли использовать с другими CSS фреймворками?
A: Да, есть поддержка Foundation, Bulma и других.