Wenn ich definieren eine Klasse Django Form ähnlich wie diese:Wie erstelle ich ein Django-Formular, das eine Checkbox-Beschriftung rechts neben dem Kontrollkästchen anzeigt?
def class MyForm(forms.Form):
check = forms.BooleanField(required=True, label="Check this")
Es HTML erweitert, die wie folgt aussieht:
<form action="." id="form" method=POST>
<p><label for="check">Check this:</label> <input type="checkbox" name="check" id="check" /></p>
<p><input type=submit value="Submit"></p>
</form>
ich das Kontrollkästchen Eingabeelement möchte ein Label haben, die die folgenden Kontrollkästchen, nicht umgekehrt. Gibt es eine Möglichkeit, Django zu überzeugen, das zu tun?
[Bearbeiten]
Danke für die Antwort von Jonas - nach wie vor, während es das Problem behebt I (nach rechts von der Checkbox gemacht Checkbox Etiketten) gefragt es ein neues Problem stellt (alle Widget Labels werden rechts neben ihren Widgets gerendert ...)
Ich möchte vermeiden, überschreiben _html_output(), da es offensichtlich nicht dafür entworfen ist. Der Entwurf, den ich entwickeln würde, wäre, eine Feld-HTML-Ausgabemethode in den Field-Klassen zu implementieren, die für das boolesche Feld zu überschreiben und diese Methode in _html_output() zu verwenden. Leider entschieden sich die Django-Entwickler für einen anderen Weg und ich würde gerne so weit wie möglich innerhalb des bestehenden Rahmens arbeiten.
CSS klingt nach einem anständigen Ansatz, außer dass ich nicht genug CSS weiß, um das durchzuziehen oder sogar zu entscheiden, ob ich diesen Ansatz mag oder nicht. Außerdem bevorzuge ich Markup, das zumindest in der Reihenfolge der Ausgabe immer noch der endgültigen Ausgabe ähnelt.
Da es darüber hinaus sinnvoll sein kann mehr als ein Stylesheet für eine bestimmte Markup zu haben, hat dies zu tun in CSS bedeuten könnte es mehrmals für mehrere Stile zu tun, das ist ziemlich viel CSS macht die falsche Antwort.
[Bearbeiten]
Scheint, wie ich unter meine eigene Frage zu beantworten. Wenn jemand eine bessere Idee hat, wie man das macht, sei nicht schüchtern.
Können Sie Stellen Sie den Code für pretty_checkbox? Mein eigenes bevorzugtes Markup dafür ist – EoghanM
Ich habe den Code gerade nicht griffbereit. Es war nicht sehr aufwendig, wenn ich mich recht erinnere - es ist einfach eine Funktion, die ein kurzes HTML-Snippet gespeist hat, und tauscht das Label und die Eingabe um, wenn die Eingabe ein Kontrollkästchen ist. Das Markup wird von Django generiert, so dass Ihre Präferenz wahrscheinlich irrelevant ist. –