我已经为每个仪表板项目命名空间的上下文。有没有一种方法可以将字典的所有值设置为模板中的键?在Jinja2中,最简单的方法是将所有键设置为字典的值?
我想重用模板,而不是总是命名空间我的变量。
我的情况下可以简化为是这个样子:
{
"business": {"businesses": [], "new_promotions": []},
"messages": {"one_to_one": [], "announcements": []
}
所以在with语句我想将所有的商务项目是本地的,包括。要做到这一点目前我有单独设置每个变量:
{% with %}
{% set businesses = business["businesses"] %}
{% set new_promotions = business["new_promotions"] %}
{% include "businesses.html" %}
{% endwith %}
我想:
{% with %}
{% for key, value in my_dict %}
{% set key = value %}
{% endfor %}
{% include "businesses.html" %}
{% endwith %}
,但他们只在该范围内的循环,这样不会在包括...
作用域
感谢LeafStorm提供的见解和示例。 business.html模板已经使用宏,但并非所有的仪表板项目都可以使用,但您完全正确,可以将业务逻辑和显示分开。 在这种情况下,对我来说,我认为有一个contextfunction根据传递的上下文输出模板是可取的,因为它意味着更少的模板代码,并保持干燥。 – Ross 2010-07-29 09:39:54
为什么我不能做{%set show ['otherdetails'] = true%} – aWebDeveloper 2014-06-04 06:58:14