将数据属性添加到 <options> Django 表单库呈现



我有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>
这是

您想要添加到模型中的内容吗?应该不会。但是您也可以将其添加为硬编码字典。

最新更新