Bootstrap 4 templates for Django Rest Framework `render_form` tag
drf-form-bootstrap-4
Bootstrap 4 templates for Django REST Framework render_form
tag.
Requirements
Tested with Django 2.2, DRF 3.9, Python 3.6 & 3.5. Almost certainly works in earlier versions.
Installation
See instructions at our Python registry for installation with pip
or in a requirements.txt
file.
Add drfformbootstrap4
to your INSTALLED_APPS
setting.
INSTALLED_APPS = (
...
'drfformbootstrap4',
)
Usage
Like the template packs in Django REST Framework, this supports three layouts:
Vertical
<form method="POST" novalidate>
{% csrf_token %}
{% render_form serializer template_pack='drfformbootstrap4/vertical' %}
<div class="row">
<div class="col text-right">
<input class="btn btn-primary" type="submit" value="Submit">
</div>
</div>
</form>
Horizontal
<form method="POST" novalidate>
{% csrf_token %}
{% render_form serializer template_pack='drfformbootstrap4/horizontal' %}
<div class="row">
<div class="col text-right">
<input class="btn btn-primary" type="submit" value="Submit">
</div>
</div>
</form>
Inline
Note that inline
is less well-tested than the others, and at the moment the error states don't render properly. If this is a problem for you, add a comment to this issue.
<form method="POST" novalidate class="form-inline">
{% csrf_token %}
{% render_form serializer template_pack='drfformbootstrap4/inline' %}
<div class="row">
<div class="col text-right">
<input class="btn btn-primary" type="submit" value="Submit">
</div>
</div>
</form>
Additional Options
Use the style
field on your serializer to change the appearance of a field.
To display a field as text instead of as a field:
style={'class': 'form-control-plaintext'}
For inline checkboxes and radio buttons:
style={'inline': True}
Prepend/append text for inputs:
style={
'prepend': 'text to prepend',
'append': 'text to append',
}
Development
Pretty standard: fork this repo, make changes, make a GitHub pull request.
There are demo pages showing a variety of form fields and layouts. To use it, first install its dependencies:
pip install -r requirements.txt
Then run the server:
make runserver
When using this runserver
, you don't need to install drfformbootstrap4
into your virtualenv before seeing changes. However if you want to see your changes reflected in a different application using the same virtualenv, install it with:
make install
Builds are here: https://travis-ci.org/BaltoRepo/drf-form-bootstrap-4
License
© 2019 Matthew Fox