2016-03-06 145 views
-1

我有这样的定义的路由:在方括号中的大括号括起来与烧瓶jinja2列表中?

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

一旦在模板“reports.html”我环路上“报告”像({% for i in reports %}

现在在循环我试图通过动态地显示在列表中的值写入两个方括号中的列表内部的神社表示:

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

而且我得到这个错误:

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' 

然而{{i.frame_choice}}单独给我“0”{{frames[0].client_name}}给我“baroudeu r“但我不能合并它们。

“帧”“报告”是2只列出了SQLAlchemy的基地中动态创建,使用python类,而不是空:

[...] 
class Frame(Base): 
    __tablename__ = 'frame' 

    id = Column(Integer, primary_key=True) 
    client_name = Column(String(250)) 
    client_adress = Column(String(250)) 
    client_phone = Column(String(10)) 
    client_mail = Column(String(250)) 


class Report(Base): 
    __tablename__ = 'report' 

    frame_choice = Column(String(250)) 
[...] 

有没有执行,我有什么办法试图做什么?

谢谢

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

+1

嘿。我认为我们会关闭这个问题,因为它太广泛了,而且每次看起来似乎有两三个问题,而这个问题实际上不太可能被其他人重现。但不要害羞,请务必尝试,并在你的下一个问题上非常清楚! –

回答

0

我在一个星期内遇到了问题,我突然明白了。正如你可以看到frame_choice = Column(String(250))是一个字符串,所以我改变它在frame_choice = Column(Integer)和一切工作完美!