我在管理站点中一起使用Django Grappelli和Django Multiselectfield来解决渲染问题。复选框标签未对齐:
Grappelli定义了两个CSS类:
.aligned label {
display: block; float: left;
padding: 0 10px 6px 0;
width: 120px;
}
.aligned .vCheckboxLabel {
display: inline; float: none; clear: both;
margin: 0 0 0 10px; padding: 0;
}
如果我将复选框类更改为" .vCheckboxLabel"在浏览器控制台中,标签正确对齐,没有问题。但是,我不能为我的生活找到如何在管理模板中设置类。
在Django管理模板中使用{% if field.is_checkbox %}
并不起作用,因为它是一个多选字段,而是呈现为{{ field.field }}
中的复选框列表。
如何在模板或其他地方指定或覆盖MultiSelectField复选框的类?
答案 0 :(得分:1)
在要定义该表单的Model或Form类中添加vCheckboxLabel。 如果您使用Form类定义表单,请使用:
myfield = forms.BooleanField(widget=forms.CheckboxInput(attrs={'class':'vCheckboxLabel'}))
如果您使用的是模型,请将小部件添加到列中。 https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#specifying-widgets-to-use-in-the-form-with-widgets
<强>替代:强> 为简单起见,您可以在该页面上使用java脚本。选择复选框类并将其更改为vCheckboxLabel。但不建议这样做。