我有django选择字段
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>
在执行用户选择的操作之前,应进行确认。但并非所有操作都需要确认。在此示例中,"删除"需要,但"获取"不需要确认。
我想添加 html 数据属性的选项
结果应如下所示:
<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>
到目前为止,我发现没有办法将数据"需要确认"注入个人选择。
。还是我在这里走错了路?
这个问题只是关于"如何将数据放入 html"。数据的评估(确认弹出窗口(不是此问题的一部分。
您需要为此创建自定义小部件。如果你查看 Select widget (django.forms.Select( 的 Django 文档,你会发现一个render_option()
方法。因此,最好对默认的 Select 类进行子类化并覆盖此方法。
模板渲染器肯定包含添加数据的功能,问题是你从哪里得到它。
<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>
这是您想要添加到模型中的内容吗?应该不会。但是您也可以将其添加为硬编码字典。