我用Flask和Jinja2 templating engine来建立一个网站。作为ORM,我使用(优秀的)Peewee ORM,现在遇到了一个问题。在
在我的烧瓶视图中,我从数据库中得到了一个用户列表:
@app.route('/stats')
def stats():
users = User.select()
return render_template('stats.html', users=users)
在我的模板中,我遍历用户并尝试扩展查询。这是有效的:
^{pr2}$但是这个:
{% for user in users %}
{{ user.app_logs.where((AppLog.type == 'LOGIN') | (AppLog.type == AppLog.TICKET)).first().created }}
{% endfor %}
给出一个TemplateSyntaxError: expected token 'name', got '('
。我理解错误的来源:管道符号(|
)被定义为a filter in Jinja。所以我试着用反斜杠(\|
)来转义它,但是没有用。在
所以我的问题是:有没有一种方法可以摆脱管道符号,或者有人有任何其他的想法来实现这一点?欢迎所有提示!在
在任何情况下,保持模板“哑”并在模板之外执行查询是一个更好的做法。在您的例子中,您可以使用playhouse extension to use hybrid attributes on the model。在
然后在你的模板中你可以
^{pr2}$相关问题 更多 >
编程相关推荐