Когда я определяю класс формы 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>
Я хотел бы, чтобы элемент ввода флажка имел метку, которая следует за флажком, а не наоборот. Есть ли способ убедить Джанго в этом?
[изменить]
Спасибо за ответ от Jonas - все же, хотя он исправляет проблему, о которой я спрашивал (метки флажков отображаются справа от флажка), она вводит новую проблему (все ярлыки виджетов отображаются справа от их виджетов...)
Я бы хотел избежать переопределения _html_output(), поскольку он явно не предназначен для него. Дизайн, который я придумал, - это реализовать метод вывода html поля в классах Field, переопределить значение для булевого поля и использовать этот метод в _html_output(). К сожалению, разработчики Django решили пойти по-другому, и я хотел бы как можно больше работать в рамках существующей структуры.
CSS похож на достойный подход, за исключением того, что я не знаю достаточно CSS, чтобы снять это или даже решить, нравится ли мне этот подход или нет. Кроме того, я предпочитаю разметку, которая по-прежнему напоминает окончательный вывод, по крайней мере, в порядке отображения.
Кроме того, поскольку для любой конкретной разметки может быть разумно иметь более одной таблицы стилей, сделать это в CSS может означать, что нужно сделать это несколько раз для нескольких стилей, что в значительной степени делает неправильный ответ CSS.
[изменить]
Кажется, я отвечаю на свой вопрос ниже. Если кто-то лучше поймет, как это сделать, не стесняйтесь.