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