【问题标题】:SQLAlchemy add columns to query() on mapped classSQLAlchemy 将列添加到映射类的 query()
【发布时间】:2013-08-01 02:25:23
【问题描述】:

我想做分页,我正在使用 PostgreSQL。为避免查询两次,我使用了https://stackoverflow.com/a/8242764

中描述的功能

如何将full_count 列添加到查询中提取的列列表中。我可以使用query.add_columns,但调用query.all() 后无法访问该列

这在 SQLAlchemy 中可行吗?

【问题讨论】:

    标签: python postgresql orm pagination sqlalchemy


    【解决方案1】:

    您能否提供要扩充的查询的原始代码?您使用的是 SQLAlchemy 核心还是声明式 ORM?对于后者,它看起来像这样:

    from sqlalchemy import func
    
    items = session.query(Model, func.count().over().label('full_count')).all()
    obj = items[0].Model
    count = items[0].full_count
    

    【讨论】:

    • 我不确定我以前在做什么,但绝对不是你建议的。您的解决方案正是我所需要的。
    • 有没有办法将“full_count”字段直接放在模型上?因此 items[0] 将返回与您上面示例中的 items[0].Model 相同的结果,除了 items[0].full_count 将包含 func.count()?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多