【问题标题】:Django how to modify checkbox labels for MultipleChoiceField?Django如何修改MultipleChoiceField的复选框标签?
【发布时间】:2013-06-03 01:36:00
【问题描述】:

如何修改(即添加类或更改 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>

如何编辑标签,以便向其添加类并更改标签的其他属性?

【问题讨论】:

  • 您可以围绕 label[for=] 标签定位属性。这会有帮助吗?
  • 是的,但我会把它放在哪里?

标签: python django django-forms


【解决方案1】:

您可以使用Widget.attrs, 具体来说:

questions = forms.MultipleChoiceField(
    required=False,
    label='',
    widget=forms.CheckboxSelectMultiple(attrs={'class': 'my-class'}),
    choices=CHOICES,
)

这会将my-class 应用于无线电选择。 如果您仍需要将类添加到呈现的label,则需要customize forms.RadioSelect

【讨论】:

  • 这只会更改复选框的类(顺便说一句,这很有帮助,谢谢)但是我如何更改复选框的标签类?
  • 我相信更改样式表比自定义小部件更直接。
  • 我将如何在我的样式表中做到这一点?
【解决方案2】:

感谢@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

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2017-09-24
    • 2021-03-07
    相关资源
    最近更新 更多