django呈现的HTML如下所示:
<select id="id_action" name="action">
<option value="" selected="selected">---</option>
<option value="query-action-take">Take</option>
<option value="query-action-forward">Forward</option>
</select>
在执行用户选择的操作之前,应该进行确认。但并非所有行动都需要确认。在这个例子中&#34;删除&#34;需要,但&#34;采取&#34;不需要确认。
我想添加html data attributes 选项
结果应如下所示:
<select id="id_action" name="action">
<option value="" selected="selected">---</option>
<option value="query-action-take" data-need-confirm="False">Take</option>
<option value="query-action-delete" data-need-confirm="True">Delete</option>
</select>
到目前为止,我发现没有办法注入数据&#34;需要确认&#34;个人选择。
......或者我在错误的轨道上?
这个问题仅涉及如何将数据导入html&#34;。对数据的评估(确认弹出窗口)不是这个问题的一部分。
答案 0 :(得分:4)
您需要为此创建自定义窗口小部件。如果您查看Select小部件(django.forms.Select)的Django文档,您将找到render_option()
方法。因此,最好将默认的Select类子类化并覆盖此方法。
答案 1 :(得分:0)
模板渲染器肯定包含添加数据的功能,问题在于从哪里获取数据。
<select id="id_action" name="action">
<option value="" selected="selected">---</option>
{% for action in actions %}
<option value="{{action.value}}" data-need-confirm="{{action.isConfirm}}">{{action.name}}</option>
{% endfor %}
</select>
这是您要添加到模型中的内容吗?可能不是。但您也可以将其添加为硬编码字典。