如何修改(即添加类或更改ID)MultipleChoiceField中复选框的标签?
在我的表单中,我有这个MultipleChoiceField
questions = forms.MultipleChoiceField(
required=False,
label='',
widget=forms.CheckboxSelectMultiple,
choices=CHOICES,
)
当我在我的模板中使用该表单时,复选框会在其周围呈现各个标签。
<label for="id_questions_0">
<input type="checkbox" name="questions" value="0">
"the question"
</label>
如何编辑标签,以便我可以为其添加一个类并更改标签的其他属性?
答案 0 :(得分:5)
您可以使用Widget.attrs, 具体是:
questions = forms.MultipleChoiceField(
required=False,
label='',
widget=forms.CheckboxSelectMultiple(attrs={'class': 'my-class'}),
choices=CHOICES,
)
这会将my-class
应用于电台选择。
如果您仍然需要向呈现的label
添加课程,则需要customize forms.RadioSelect
。
答案 1 :(得分:0)
谢谢@yuwang,很高兴看到这也适用于ModelMultipleChoiceField(它允许您显示多个复选框),如下所示。关于ModelMultipleChoiceFields的文档非常少,所以我想分享。
class ProposedFlagForm(ModelForm):
id = CharField(widget=HiddenInput())
crs_sched_proposed_course = CharField(widget=HiddenInput())
enrollment_flag = ModelMultipleChoiceField(required=False,
label='',
queryset=EnrollmentFlag.objects.all()\
.exclude(display='')\
.order_by('display'),
widget=CheckboxSelectMultiple)
class Meta:
model = CrsSchedProposedFlag
exclude = ('_updated','_updatedby')
#end Meta class
#end ProposedFlagForm