Skip to content

django-crispy-forms/crispy-bootstrap5

Folders and files

NameName
Last commit message
Last commit date
Nov 19, 2024
Oct 5, 2024
Nov 19, 2024
Nov 9, 2020
Nov 19, 2024
Nov 19, 2024
Nov 8, 2020
Nov 10, 2020
Sep 24, 2024
Nov 19, 2024
Jun 8, 2021
Nov 19, 2024

Repository files navigation

crispy-bootstrap5

License

Bootstrap5 template pack for django-crispy-forms

Installation

Install this plugin using pip:

$ pip install crispy-bootstrap5

Usage

You will need to update your project's settings file to add crispy_forms and crispy_bootstrap5 to your projects INSTALLED_APPS. Also set bootstrap5 as and allowed template pack and as the default template pack for your project

INSTALLED_APPS = (
    ...
    "crispy_forms",
    "crispy_bootstrap5",
    ...
)

CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"

CRISPY_TEMPLATE_PACK = "bootstrap5"

What's new?

Bootstrap 5 introduces floating labels. This template pack include a layout object to use this input type

from crispy_bootstrap5.bootstrap5 import FloatingField

# then in your Layout
... Layout(
    FloatingField("first_name"),
)

Accordions also have new features, such as Accordion flush and Always open. There is a new layout object to use them

from crispy_bootstrap5.bootstrap5 import BS5Accordion

# then in your Layout
# if not informed, flush and always_open default to False
... Layout(
    BS5Accordion(
        AccordionGroup("group name", "form_field_1", "form_field_2"),
        AccordionGroup("another group name", "form_field"),
        flush=True,
        always_open=True
    )
)

Support is added for Switches. Switches are a custom checkbox rendered as a toggle switch. The widget for these fields should be a CheckboxInput.

from crispy_bootstrap5.bootstrap5 import Switch

... Layout(Switch("is_company"))

Development

To contribute to this library, first checkout the code. Then create a new virtual environment:

cd crispy-bootstrap5
python -m venv venv
source venv/bin/activate

Or if you are using pipenv:

pipenv shell

Now install the dependencies and tests:

pip install -e '.[test]'

To run the tests:

pytest