首页 > 解决方案 > 如何在下拉列表中同时显示值和文本?

问题描述

我有一个使用烧瓶将信息发送到 html 页面的 python 应用程序。我将表的两列解析为一个变量,我想在同一个下拉菜单中以不同的方式使用这两列。第一列应该分配给语句的值,第二列应该是下拉菜单中显示的文本。我目前只知道如何呈现一列。

这是我目前用于此的代码:

<select name="WantedRole" value="WantedRole"/>
{% for row in AllRoles%}
    {% for d in row %}
        <option value="{{d}}">{{d}}</option>
    {% endfor %}
{% endfor %}
</select>

所以我目前不知道如何为{{ d }}分配给值的值获取不同的值,而{{ d }}这只是文本表示。

标签: pythonflaskjinja2

解决方案


假设您的 ORM 模型 D 类型具有属性 id 和 name:

<option value="{{d.id}}">{{d.name}}</option>

替换任何适当的属性名称。

请注意,在您的原始代码中,{{d}} 不是文本表示,d 表示从您的数据库查询返回的对象。您的模板引擎正在后台调用对象上的方法以获取字符串表示形式。


推荐阅读