Skip to main content

Bootstrap support for Django projects

Project description Latest PyPI version

Bootstrap 4 integration for Django.


The goal of this project is to seamlessly blend Django and Bootstrap 4.



The full documentation is at


  1. Install using pip:

    pip install django-bootstrap4

    Alternatively, you can install download or clone this repo and call pip install -e ..

  2. Add to INSTALLED_APPS in your


  3. In your templates, load the bootstrap4 library and use the bootstrap_* tags:

Example template

{% load bootstrap4 %}

{# Display a form #}

<form action="/url/to/submit/" method="post" class="form">
    {% csrf_token %}
    {% bootstrap_form form %}
    {% buttons %}
        <button type="submit" class="btn btn-primary">Submit</button>
    {% endbuttons %}


A demo app is provided in demo. You can run it from your virtualenv with python runserver.

Bugs and suggestions

If you have found a bug or if you have a request for additional functionality, please use the issue tracker on GitHub.


You can use this under BSD-3-Clause. See LICENSE file for details.


Developed and maintained by Zostera.

Original author & Development lead: Dylan Verheul.

Thanks to everybody that has contributed pull requests, ideas, issues, comments and kind words.

Please see AUTHORS.rst for a list of contributors.


1.1.1 (2019-12-11)

  • Remove tag command from Makefile
  • Reinstate bootstrap4.__version__ (#186)
  • Add test for using a different jQuery version (#184)

1.1.0 (2019-12-09)

  • Update default Bootstrap to v4.3.1
  • Add support for Python 3.8, Django 3 and Django master
  • Switch to Django for test running
  • Update Makefile commands
  • Update tox configuration
  • Use correct license (BSD-3-Clause)
  • Fix typo’s in docstrings
  • Update Travis configuration
  • Drop, use setuptools_scm
  • Stop using, use git tags for versioning
  • Fixed issues with labels and input (#174 and #181)

1.0.1 (2019-08-30)

  • Fix support for Python 3.5 (#168)
  • Set correct Python versions in
  • Fix make test command

1.0.0 (2019-08-30)

  • Set default class for buttons to btn-primary (#150)
  • Drop support for Python 2 and Django 1.11, 2.0 and 2.1 (#155)
  • Template tag bootstrap_field now allows 3 values for show_label: True, False / ‘sr-only’ and ‘skip’. In the case of False / ‘sr-only’ the label is hidden but present for screen readers. When show_label is set to ‘skip’, the label is not generated at all.
  • Fix validation on input groups (#122)
  • No longer duplicate jquery in bootstrap4.html (#139, #140)
  • Apply form-check, form-check-label and form-check-input classes to appropriate tags for RadioSelect and CheckboxSelectMultiple widgets (#141)
  • Errors on file inputs are shown (#146)
  • Only display non-field errors in form alert block (#161)
  • Reinstate bootstrap4_title block to bootstrap4.html (#156)
  • Fix typo in alert-dismissible class (#142)
  • Honor the form_group_class parameter in the buttons tag (#162)

0.0.8 (2019-03-12)

  • Drop support for the base_url setting (#105)
  • Remove use of “falsy” as a string literal (#111)
  • Fix javascript inclusion bugs (#71)
  • Allow email to have addons (#131)
  • Do not mark placeholder text as safe (#135)
  • Adopt black

0.0.7 (2018-08-22)

  • Improve alert accessibility (#93)
  • Add a new widget: RadioSelectButtonGroup (#103)
  • Several fixes and improvements to HTML rendering
  • Switch to explicit Travis tests
  • Upgrade Bootstrap to 4.1.1
  • Upgrade jQuery to 3.3.1
  • Upgrade Popper to 1.14.3
  • Fixed bootstrap4.html to add jQuery per setting ‘include_jquery’ [False|True|’full’|’slim’]
  • Adopt Black formatting, see

0.0.6 (2018-02-14)

  • Change form help text element from div to small (#60)
  • Upgrade Bootstrap to 4.0.0 (#66)

0.0.5 (2018-01-03)

  • Drop develop branch, work with master and feature branches
  • Clean up history file
  • Upgrade Bootstrap to 4.0.0-beta.3
  • Use col-4 rather than col-xs-4 (#54)
  • Added pagination alignment options (#56)
  • Fixed form field errors and help texts (#39)
  • Use django language if USE_I18N=True (#53)

0.0.4 (2017-10-26)

  • Upgrade Bootstrap to 4.0.0-beta.2
  • Fix settings, tags and tests for remote JS and CSS

0.0.3 (2017-09-24)

  • Upgraded bootstrap4 to the beta version

0.0.2 (2017-09-06, not released on PyPI)

  • Upgraded jQuery version from CDN to 3.2.1 (#17)
  • Added proper pagination layout classes (#19)

0.0.1 (2017-06-04)

  • First release

Unreleased (2017-04-25)

  • Remove bootstrap_icon, BS4 no longer has default icons.
  • Various changes to get from 3 to 4, started MIGRATE.rst.
  • Started django-bootstrap4 based on django-bootstrap3.
  • Thanks everybody that contributed to django-bootstrap3!

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-bootstrap4, version 1.1.1
Filename, size File type Python version Upload date Hashes
Filename, size django_bootstrap4-1.1.1-py3-none-any.whl (26.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size django-bootstrap4-1.1.1.tar.gz (45.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page