在Jinja2中有没有办法构造一个变量名然后调用它?我想做这样的事情:
{% for type in ('Students', 'Faculty', 'Groups') %}
{% set import_name = 'latest_' + type|lower + '_import' %}
{{ type }}: {{ import_name.created_at }}
{% endfor %}
我希望输出是这样的:
Students: 5/26/2016
Faculty: 5/25/2016
Groups: 5/25/2016
我在模板范围内设置了变量latest_students_import,latest_faculty_import和latest_groups_import,并希望避免在for循环中使用大的条件。我根据类型设置import_name,然后尝试“调用”import_name。我想要{{call(import_name)}}之类的东西。这是可能的,还是有其他方法可以解决这个问题?
在这种情况下,我想我可以通过三个模板变量名称以反向顺序循环执行,然后“打印”缩写的名称,大写,但我更愿意这样做。
答案 0 :(得分:1)
一种可能性是在服务器端创建包含变量的list
或import_name
。然后,您可以将该对象作为模板变量发送到Jinja。目前您只需将.created_at
设置为等于字符串,该字符串不会具有Object.create(null)
属性。