Python 如何以不同于过滤器的方式使用烧瓶/Jinja模板中的管道?
我正在使用和来建立一个网站。作为一个ORM,我使用了(优秀的),现在我遇到了一个问题 在我的Flask视图中,我从数据库中获得一个用户列表:Python 如何以不同于过滤器的方式使用烧瓶/Jinja模板中的管道?,python,templates,flask,jinja2,peewee,Python,Templates,Flask,Jinja2,Peewee,我正在使用和来建立一个网站。作为一个ORM,我使用了(优秀的),现在我遇到了一个问题 在我的Flask视图中,我从数据库中获得一个用户列表: @app.route('/stats') def stats(): users = User.select() return render_template('stats.html', users=users) 在我的模板中,我循环遍历用户并尝试展开查询。这项工作: {% for user in users %} {{ user.
@app.route('/stats')
def stats():
users = User.select()
return render_template('stats.html', users=users)
在我的模板中,我循环遍历用户并尝试展开查询。这项工作:
{% for user in users %}
{{ user.app_logs.where(AppLog.type == 'LOGIN').first().created }}
{% endfor %}
但这是:
{% for user in users %}
{{ user.app_logs.where((AppLog.type == 'LOGIN') | (AppLog.type == AppLog.TICKET)).first().created }}
{% endfor %}
给出一个模板语法错误:应为标记'name',get'('
)。我了解错误的来源:管道符号(
)被定义为。因此我尝试用反斜杠(\\\\\\
)对其进行转义,但这不起作用
因此,我的问题是:有没有一种方法可以避开管道符号,或者有没有人有任何其他想法来实现这一点?欢迎提供所有提示!在任何情况下,保持模板“哑”并在模板之外执行查询都是一种更好的做法。在您的情况下,您可以使用 然后在你的模板中你就可以
{% for user in users %}
{{ user.applog_login_ticket }}
{% endfor %}
我不知道Peewee,但看起来它有一个
@DanielRoseman-除了更好的查询之外,这是一个很好的主意。但不幸的是,这也不起作用:TemplateSyntaxError:unexpected'在用户
模型上编写一个方法,并从模板中调用此方法。
{% for user in users %}
{{ user.applog_login_ticket }}
{% endfor %}