将 Jinja 的 groupby 过滤器与元组一起使用
Use Jinja's groupby filter with tuples
我正在使用 Jinja2 模板构建一个 Flask 应用程序,并从 Flask-SQLAlchemy 向它提供数据。我想根据一个查询构建一个视图(有效列表),该查询给我一个包含两个对象(User
和 Registration
)的元组:
eligible_racers = db.session.query(User, Registration).filter(User.id==Registration.racer_id).filter(Registration.team_id==team_id).filter(Registration.season_id==race.season_id).all()
在我的模板中,我想按 Registration
对象的属性对结果进行分组。 grouby
过滤器看起来很理想,但似乎没有办法将其中一个元组成员的属性传递给它。
在我的模板中有没有一种优雅的方法可以做到这一点?或者我是否需要在我的 Python 视图代码中进行分组并向模板传递不同结构的数据(请记住我需要将用户和注册配对)?
一些 Jinja 过滤器,包括 groupby
,通过用 .
分隔属性来处理多级属性查找。 SQLAlchemy 查询返回键控元组,其中可选名称(本例中为模型)作为属性名称。
{% for level, items in racers|groupby('Registration.level') %}
{{ level }}
{% for user, registration in items %}
{{ user.name }}
{% endfor %}
{% endfor %}
您也可以使用 1.level
,索引查找也可以。
我正在使用 Jinja2 模板构建一个 Flask 应用程序,并从 Flask-SQLAlchemy 向它提供数据。我想根据一个查询构建一个视图(有效列表),该查询给我一个包含两个对象(User
和 Registration
)的元组:
eligible_racers = db.session.query(User, Registration).filter(User.id==Registration.racer_id).filter(Registration.team_id==team_id).filter(Registration.season_id==race.season_id).all()
在我的模板中,我想按 Registration
对象的属性对结果进行分组。 grouby
过滤器看起来很理想,但似乎没有办法将其中一个元组成员的属性传递给它。
在我的模板中有没有一种优雅的方法可以做到这一点?或者我是否需要在我的 Python 视图代码中进行分组并向模板传递不同结构的数据(请记住我需要将用户和注册配对)?
一些 Jinja 过滤器,包括 groupby
,通过用 .
分隔属性来处理多级属性查找。 SQLAlchemy 查询返回键控元组,其中可选名称(本例中为模型)作为属性名称。
{% for level, items in racers|groupby('Registration.level') %}
{{ level }}
{% for user, registration in items %}
{{ user.name }}
{% endfor %}
{% endfor %}
您也可以使用 1.level
,索引查找也可以。