これに似た Django フォーム クラスを定義すると、次のようになります。
def class MyForm(forms.Form):
check = forms.BooleanField(required=True, label="Check this")
次のような HTML に展開されます。
<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>
チェックボックスの入力要素に、チェックボックスに続くラベルを付けたいのですが、その逆ではありません。Djangoにそうするよう説得する方法はありますか?
[編集]
Jonas からの回答に感謝します - それでも、私が尋ねた問題 (チェックボックスのラベルがチェックボックスの右側にレンダリングされる) は修正されますが、新しい問題が発生します (すべてのウィジェットのラベルはウィジェットの右側にレンダリングされます...)
_html_output() は明らかに設計されていないため、オーバーライドを避けたいと思います。私が思いついた設計は、Field クラスにフィールド html 出力メソッドを実装し、Boolean フィールドのメソッドをオーバーライドし、そのメソッドを _html_output() で使用することです。残念なことに、Django 開発者は別の道を選んだので、私は可能な限り既存のフレームワーク内で作業したいと考えています。
CSS はまともなアプローチのように思えますが、これを実行するのに十分な CSS を知らないか、このアプローチが好きかどうかを判断することさえできません。さらに、少なくともレンダリングの順序で、最終出力に似たマークアップを好みます。
さらに、特定のマークアップに対して複数のスタイル シートを使用することは合理的である可能性があるため、CSS でこれを行うと、複数のスタイルに対して複数回行う必要が生じる可能性があり、CSS はほとんど間違った答えになります。
[編集]
以下の自分の質問に答えているようです。誰かがこれを行う方法をよりよく知っている場合は、恥ずかしがらないでください。