如何从django表单的复选框标签中提供class属性

时间:2018-05-12 05:15:07

标签: django django-forms

在forms.py,

aminities = forms.MultipleChoiceField(choices= dicto.aminites_dic.items(), 
required=False,widget=forms.CheckboxSelectMultiple(attrs= 
{'name':'list_details[]','class':'amini'}))

在模板中,

{% for check in form.aminities %}
      {{check}}
    {% endfor %}

1 个答案:

答案 0 :(得分:0)

通常,不是拼写出模板中的整个字段(使用for循环并明确地呈现choice_label,而是应该对窗口小部件进行子类化并替换模板。

class SpecialCheckboxSelectMultiple(CheckboxSelectMultiple):
    option_template_name = "myapp/widgets/checkbox_option.html"

然后在 checkbox_option.html 中,您可以根据原始Django代码(您可以在django / forms / widgets / input_option.html中找到)自定义代码:

{% if wrap_label %}
    <label{% if widget.attrs.id %} for="{{ widget.attrs.id }}"{% endif %}>
{% endif %}
{% include "django/forms/widgets/input.html" %}
{% if wrap_label %} {{ widget.label }}</label>{% endif %}

在这里,您可以将自己的类添加到标签中。在您的模板中,您只需致电{{ check }},它就会使用您的自定义<label>