Django : créer un checkbox multiple choice avec bootstrap
Je me sers de cet habillage ici.
C’est, en gros, une “surcharge” de bootstrap avec quelques composants en plus.
Seulement j’aurais aimé avoir une sélection de plusieurs choix = cases à cocher qui soit “compatible” avec cet habillage.
Je n’aurais jamais cru que c’était aussi simple.
En fait Django a généralisé plein d’affichages HTML à tel point qu’il suffit de faire du pas à pas et de regarder ce qu’il fait pour comprendre.
Même le rendu par “item” de chaque “Renderer” est surchargeable. Donc voici le code qui prend… 10 lignes, et qui réhabille totalement le rendu des cases à cocher :
from django.forms import CheckboxSelectMultiple from django.forms.widgets import ChoiceFieldRenderer, \ CheckboxChoiceInput class BootstrapChoiceFieldRenderer(ChoiceFieldRenderer): choice_input_class = CheckboxChoiceInput outer_html = '<div{id_attr}>{content}</div>' inner_html = '<div class="checkbox">' '{choice_value}{sub_widgets}' '</div>' class CheckboxSelectMultipleBootstrap(CheckboxSelectMultiple): renderer = BootstrapChoiceFieldRenderer