1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
# crispy-bootstrap5
[](https://github.com/smithdc1/crispy-bootstrap5/blob/main/LICENSE)
Bootstrap5 template pack for django-crispy-forms
## Installation
Install this plugin using `pip`:
```bash
$ 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
```python
INSTALLED_APPS = (
...
"crispy_forms",
"crispy_bootstrap5",
...
)
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
CRISPY_TEMPLATE_PACK = "bootstrap5"
```
## What's new?
Bootstrap 5 introduces [floating labels](https://getbootstrap.com/docs/5.0/forms/floating-labels/).
This template pack include a layout object to use this input type
```python
from crispy_bootstrap5.bootstrap5 import FloatingField
# then in your Layout
... Layout(
FloatingField("first_name"),
)
```
Accordions also have new features, such as [Accordion flush](https://getbootstrap.com/docs/5.0/components/accordion/#flush) and [Always open](https://getbootstrap.com/docs/5.0/components/accordion/#always-open).
There is a new layout object to use them
```python
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](https://getbootstrap.com/docs/5.2/forms/checks-radios/#switches). Switches are a custom
checkbox rendered as a toggle switch. The widget for these fields should be
a [CheckboxInput](https://docs.djangoproject.com/en/4.2/ref/forms/widgets/#django.forms.CheckboxInput).
```python
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:
```bash
cd crispy-bootstrap5
python -mvenv venv
source venv/bin/activate
```
Or if you are using `pipenv`:
```bash
pipenv shell
```
Now install the dependencies and tests:
```bash
pip install -e '.[test]'
```
To run the tests:
```bash
pytest
```
|