Dans Django est-il un moyen pour afficher les choix que des cases à cocher?
Dans l'interface d'administration et formes automorphes il est le génial helper de pouvoir définir des choix. Vous pouvez utiliser le code comme ceci:
APPROVAL_CHOICES = (
('yes', 'Yes'),
('no', 'No'),
('cancelled', 'Cancelled'),
)
client_approved = models.CharField(choices=APPROVAL_CHOICES)
pour créer une liste déroulante dans votre forme et de la force à l'utilisateur de choisir une de ces options.
Je me demandais simplement si il existe un moyen de définir un ensemble de choix où plusieurs peuvent être choisis à l'aide des cases à cocher? (Serait aussi agréable d'être en mesure de dire que l'utilisateur peut sélectionner un nombre maximum d'entre eux.) Il semble que c'est une fonctionnalité qui est probablement mis en œuvre, c'est juste que je n'arrive pas à trouver dans la documentation.
Vous devez vous connecter pour publier un commentaire.
En termes de la bibliothèque de formulaires, vous devez utiliser la MultipleChoiceField champ avec un CheckboxSelectMultiple widget pour le faire. Vous pourriez valider le nombre de choix qui ont été faits par l'écriture d'une méthode de validation pour le domaine:
Pour obtenir ce dans l'administrateur de l'application, vous aurez besoin de personnaliser un ModelForm et remplacer la forme utilisée dans la ModelAdmin.
@JonnyBuchanan a donné la bonne réponse.
Mais si vous avez besoin de cela dans l'admin de django pour de nombreux modèles, et vous êtes (comme moi) trop paresseux pour personnaliser un ModelForm et ovverride les bonnes méthodes à l'intérieur de la ModelAdmin de classe, vous pouvez utiliser cette approche:
http://www.abidibo.net/blog/2013/04/10/convert-select-multiple-widget-checkboxes-django-admin-form/