Django-pony-forms helps you to write better html for your Django forms.
Read the documentation on readthedocs
1: Better form html by default
The form html that Django produces is not very nice or useful. For example, the default output of a Django form is a table.
Just mixin PonyFormMixin to produce better html:
class ExampleForm(PonyFormMixin, forms.Form):
name = forms.CharField()
This produces the following html:
<div class="form-row row-name">
<label for="id_name">Name</label>
<input type="text" id="id_name" name="name" />
</div>
2: Write your own form templates
You can also write your own form templates:
class ExampleForm(PonyFormMixin, forms.Form):
name = forms.CharField()
form_template = 'my_form.html'
row_template = 'my_row.html'
my_form.html:
<div class="my_form">
{{ hidden_fields }}
{{ top_errors }}
{{ rows }}
</div>
The package is tested with Django 2.2 - 3.1 and Python 3.6 - 3.8.
Install the package:
$ pip install django_pony_forms
Add django_pony_forms to your installed apps in settings.py.
INSTALLED_APPS = (
..
'django_pony_forms',
)