在带有烧瓶jinja2的列表中的方括号中嵌套括号?

时间:2016-03-06 22:30:22

标签: python html flask jinja2

我的路线定义如下:

[...]
reports = session.query(Report)
    frames = session.query(Frame)
    return render_template('reports.html', reports = reports, frames = frames)
[...]

进入模板“reports.html”后,我就像<({1}})

那样循环“reports”

现在在循环中我尝试通过在列表的两个方括号内写一个Jinja表达式来动态显示列表中的值

{% for i in reports %}

我收到了这个错误:

[...]
<div>
{{frames[ {{i.frame_choice}} ].client_name}}
</div>
[...]

这次尝试没有大括号的jinja表达式:

jinja2.exceptions.TemplateSyntaxError: expected token ':', got '}'

我收到此错误:

[...]
<div>
{{frames[ i.frame_choice ].client_name}}
</div>
[...]

但是UndefinedError: 'sqlalchemy.orm.query.Query object' has no attribute u'0' 单独给我“0”{{i.frame_choice}}给我“baroudeur”但是我无法合并它们。

“frames”“reports”是在SQLAlchemy基础中使用python类动态创建的2个列表,并且不为空:

{{frames[0].client_name}}

有没有办法执行我想要做的事情?

谢谢

这(Reference template variable within Jinja expression)甚至没有接近我的问题,也没有帮助我。

1 个答案:

答案 0 :(得分:0)

我在一周内遇到了这个问题,我突然明白了。正如您所看到的,frame_choice = Column(String(250))是一个字符串,因此我在frame_choice = Column(Integer)中对其进行了更改,一切正常!