我的路线定义如下:
[...]
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)甚至没有接近我的问题,也没有帮助我。
答案 0 :(得分:0)
我在一周内遇到了这个问题,我突然明白了。正如您所看到的,frame_choice = Column(String(250))
是一个字符串,因此我在frame_choice = Column(Integer)
中对其进行了更改,一切正常!