Lorsque je définis une classe de formulaire Django similaire à ceci :
def class MyForm(forms.Form):
check = forms.BooleanField(required=True, label="Cocher ceci")
Cela se développe en HTML qui ressemble à ceci :
Cocher ceci :
Je voudrais que l'élément d'entrée de la case à cocher ait une étiquette qui suit la case à cocher, et non l'inverse. Y a-t-il un moyen de convaincre Django de faire cela ?
[Édition]
Merci pour la réponse de Jonas - néanmoins, bien que cela corrige le problème que j'ai mentionné (les étiquettes des cases à cocher sont affichées à droite de la case à cocher), cela introduit un nouveau problème (toutes les étiquettes des widgets sont affichées à droite de leurs widgets...)
J'aimerais éviter de remplacer _html_output() car ce n'est évidemment pas conçu pour cela. La conception que je proposerais serait d'implémenter une méthode de sortie html de champ dans les classes de champ, de remplacer celle du champ booléen et d'utiliser cette méthode dans _html_output(). Malheureusement, les développeurs Django ont choisi une autre voie, et j'aimerais travailler autant que possible dans le cadre existant.
Le CSS semble être une approche décente, sauf que je ne connais pas suffisamment le CSS pour y parvenir ou même pour décider si j'aime cette approche ou non. De plus, je préfère un balisage qui ressemble toujours à la sortie finale, du moins dans l'ordre de rendu.
De plus, comme il peut être raisonnable d'avoir plus d'une feuille de style pour un balisage particulier, le faire en CSS pourrait signifier de devoir le faire plusieurs fois pour plusieurs styles, ce qui fait du CSS la mauvaise réponse.
[Édition]
On dirait que je réponds à ma propre question ci-dessous. Si quelqu'un a une meilleure idée pour le faire, n'hésitez pas.