Jinja: 上下文作为数组
Jinja2的上下文只能是字典吗?很多时候我没有像 {'something': [1, 2, 3]}
这样的字典,而只是简单的 [1, 2, 3]
列表。
我是不是必须把这个列表放进一个字典里才能循环遍历它呢?
补充:如果有人觉得有用,我最后把所有的上下文传给了下面的函数,这样就能保持字典不变,同时把列表包装成 {'this': [MY_ARRAY]}
这样的结构。
def checked_context(ctx):
return ctx if isinstance(ctx, dict) else {'this': ctx}
基本上,你可以像往常一样使用字典,并且可以通过 this
来访问列表,就像下面这个例子处理简单列表 [1, 2, 3]
一样:
{% for number in this %}
{{ number }}
{% endfor %}
1 个回答
2
Jinja的上下文其实就是一个命名空间; 所以没错,你必须使用字典,不然你在模板中就无法用名字来引用这些值。