【问题标题】:Use Jinja's groupby filter with tuples使用 Jinja 的 groupby 过滤器和元组
【发布时间】:2016-11-08 20:33:21
【问题描述】:

我正在使用 Jinja2 模板构建一个 Flask 应用程序,并为它提供来自 Flask-SQLAlchemy 的数据。我想基于一个查询构建一个视图(有效列表),该查询给我一个包含两个对象(UserRegistration)的元组:

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 视图代码中进行分组并传递不同结构的模板数据(记住我需要保持用户和注册配对)?

【问题讨论】:

    标签: python flask sqlalchemy jinja2


    【解决方案1】:

    一些 Jinja 过滤器,包括 groupby,通过使用 . 分隔属性来处理多级属性查找。 SQLAlchemy 查询以可选名称(在本例中为模型)作为属性名称返回键控元组。

    {% for level, items in racers|groupby('Registration.level') %}
        {{ level }}
        {% for user, registration in items %}
            {{ user.name }}
        {% endfor %}
    {% endfor %}
    

    你也可以使用1.level,索引查找也可以。

    【讨论】:

      猜你喜欢
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2020-06-24
      相关资源
      最近更新 更多