Jinja:Context as Array

时间:2014-04-17 10:28:46

标签: python templates jinja2

Jinja2上下文只能是字典吗?在许多情况下,我没有{'something': [1, 2, 3]},只是[1, 2, 3]

我是否被迫将列表包装到字典中以便循环播放?

编辑:如果有人发现它有用,我最后将每个上下文传递给以下函数,以便它保持字典不变,但将列表包装在{'this': [MY_ARRAY]}结构中。 / p>

def checked_context(ctx):
    return ctx if isinstance(ctx, dict) else {'this': ctx}

基本上,您可以像往常一样使用词典,并且可以使用this访问列表,例如以下示例中处理简单列表,例如[1, 2, 3]

{% for number in this %}
    {{ number }}
{% endfor %}

1 个答案:

答案 0 :(得分:1)

Jinja上下文是名称空间;所以是的,您必须使用字典,否则值不会绑定到您在模板中引用的名称。