Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何以不同于过滤器的方式使用烧瓶/Jinja模板中的管道?_Python_Templates_Flask_Jinja2_Peewee - Fatal编程技术网

Python 如何以不同于过滤器的方式使用烧瓶/Jinja模板中的管道?

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.

我正在使用和来建立一个网站。作为一个ORM,我使用了(优秀的),现在我遇到了一个问题

在我的Flask视图中,我从数据库中获得一个用户列表:

@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 %}