问题描述
我有一个 Django ModelForm,它使用 CheckBoxSelectMultiple 小部件呈现外键字段。我希望能够通过添加和/或删除一些 css 类来更改复选框的显示。
在模板中,表单呈现如下:
<div id="id_activities" class="form-group">
<label class="" for"">Choose Activities:</label>
<div class="">
<div class="custom-control custom-checkBox">
<input id="id_activities_1" class="custom-control-input" type="checkBox" name="activities" value="1"/>
<label class="custom-control-label" for="id_activities_1">..</label>
</div>
</div>
</div>
我希望能够使用一些非引导类自定义复选框的外观。我试过提供一个带有以下 html 的模板:
{% load crispy_forms_field %}
<div class="form-group">
<label class="" for="">Choose Activities</label>
<div>
<div class="custom-control custom-checkBox addon">
{% crispy_field field 'class' 'custom-control-input' %}
<label class="custom-control-label small" for="{{ field.id_for_label }}">{{ field.label }}</label>
</div>
</div>
</div>
但这会导致输入被包裹在
我目前正在尝试覆盖我自己的 scss 文件中的引导程序类,但对这种解决方法不满意,因为我想要更多的控制。有没有更好的方法来自定义 CheckBoxSelectMultiple?我是否需要创建自定义布局对象?
解决方法
为了解决这个问题,我对 CheckboxSelectMultiple 小部件进行了子类化,并为 tempate_name 和 option_template_name 提供了我自己的模板。我很大程度上重用了 django 模板代码,但交换了 div 的列表元素