【发布时间】:2016-01-22 16:28:42
【问题描述】:
我正在尝试创建一个包含多个表单页面的小站点。在这些表单中,我想添加一些下拉列表并使用存储在我项目中的模块中的列表来支持内容
这些列表基本上被用作枚举(我被困在 Python 3.4 上,显然 Python 在没有枚举支持的情况下已经做到了这一点)
我不想将每个可能的列表作为模型的一部分传递(效率低下),但相反地,跟踪哪些列表在哪里使用并确保模型被适当地填充似乎很多为如此琐碎的事情而烦恼。
所以...我想编写一个宏,它会采用一个列表名称并为其生成一个下拉列表。我最初的尝试:
{% macro dropdown(name, selected='') -%}
<select name="{{ name }}">
{% for item in Server.Enums.__dict__({{name}}) %}
<option>{{item}}</option>
{% endfor %}
</select>
{%- endmacro %}
失败,因为我无法获得 Enums 模块的引用来工作。
如何在不明确将其添加到模型的情况下向 Jinja 公开 Enums 模块和其中的列表?
【问题讨论】:
-
@dirn 这很方便,谢谢,但问题仍然存在......我如何从 jinja2 模板中引用它们
标签: python python-3.x flask jinja2