Когда я определяю класс формы 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 неправильным ответом.
[Изменить]
Похоже, я отвечаю на свой вопрос ниже. Если у кого-то есть идея, как это сделать, не стесняйтесь.