pip install django-crispy-forms
python
INSTALLED_APPS = [
...
'django_crispy_forms',
...
]
python
CRISPY_TEMPLATE_PACK = 'bootstrap4'
python
from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit
class MyForm(forms.Form):
name = forms.CharField()
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.layout = Layout(
'name',
'email',
'message',
Submit('submit', 'Submit')
)
self.helper.form_method = 'post'
python
from .forms import MyForm
def my_view(request):
form = MyForm()
return render(request, 'my_template.html', {'form': form})
html
{# my_template.html #}
{% load crispy_forms_tags %}
<form method="post">
{% csrf_token %}
{% crispy form %}
</form>