访问CheckboxSelectMultiple复选框的属性

时间:2018-09-18 17:45:30

标签: django django-forms django-templates

简短版本

在Django模板语言中,如何访问CheckboxSelectMultiple小部件中给定复选框的属性?

长版

可以轻松访问典型Django小部件的属性:

{% for field in form %}
{{ field.widget.attrs.something }}
{% endfor %}

但是,此方法不适用于CheckboxSelectMultiple小部件中的复选框

我有一个自定义的CheckboxSelectMultiple小部件,用于显示ManyToMany ModelForm字段。定制的窗口小部件将附加属性添加到create_option方法中的每个复选框。

其他属性会在输入元素的HTML中适当显示:

<input type="checkbox" name="questions" value="22" id="id_questions_12" category="Category Name" category_number="3" question="Question Name" question_number="4">

为了显示和组织表单字段,我需要访问这些附加属性。

1 个答案:

答案 0 :(得分:0)

让它坐了一个星期左右后,我又回到了这个位置。在研究了更多内容并阅读了BoundField(特别是BoundWidget)的文档之后,我发现了如何在attrs小部件中访问单个复选框的CheckboxSelectMultiple

{% for field in form %}
{% for check in field.subwidgets %}
{% for a in check.data.attrs %}