当我定义类似如下的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>
我希望checkbox输入元素后面有一个标签,而不是相反.有没有办法说服Django这么做?
[Edit]个个
感谢Jonas的回答-尽管它修复了我询问的问题(复选框标签呈现在复选框的右侧),但也带来了一个新问题(所有窗口小部件标签都呈现在其窗口小部件的右侧……)
我希望避免覆盖_html_output(),因为它显然不是为它设计的.我提出的设计方案是在Field类中实现一个字段html输出方法,覆盖布尔型字段的输出方法,并使用该方法in_html_output().遗憾的是,Django开发人员 Select 了一条不同的道路,我希望尽可能地在现有框架内工作.
CSS听起来是一种不错的方法,只是我对CSS的了解还不够多,无法做到这一点,甚至不能决定我是否喜欢这种方法.此外,我更喜欢仍然与最终输出相似的标记,至少在呈现顺序上是这样.
此外,由于对任何特定标记使用多个样式表是合理的,因此在CSS中这样做可能意味着必须对多个样式执行多次,这在很大程度上使CSS成为错误的答案.
[Edit]个个
看起来我是在回答下面我自己的问题.如果有人有更好的办法,不要害羞.