python - 如何在单个对象中展平 SQLAlchemy 查询的结果?
问题描述
我有一个User
模型,我想进行查询以获取具有一些额外计算字段的所有用户。我正在使用 SQLAlchemy 执行我的查询和 Flask 进行模板化:
db.session.query(User, func.sum(Pet).label(nb_pets).join(Pet.parent_id === User.id)
我得到的结果有这种格式:
[(<User 123>, 4), (<User 456>, 1), ...]
如果我想在我的模板中呈现用户列表,我必须这样做
{% for row in users %}
{{ row[0].name }}
{{ row.nb_pets }}
{% endfor %}
我应该怎么做才能在用户对象上添加计算字段?我希望能够执行:
{% for user in users %}
{{ user.name }}
{{ user.nb_pets }}
{% endfor %}
解决方案
使用序列解包将“行”分成两部分:
{% for user, nb_pets in users %}
{{ user.name }}
{{ nb_pets }}
{% endfor %}
推荐阅读
- django - 使用没有数据的 method.post
- rank - 在 MySQL 中使用 Rank 函数会导致错误
- intel-mkl - MKL 的英特尔文档:我在哪里可以获得这些库的函数列表?
- javascript - 设置状态后重新渲染状态
- reactjs - 将自定义字段导出到 csv。反应管理员
- android - android应用程序的权限被重复拒绝
- python - 转换后的 csvs 中不保留 xlsx 文件的列名
- java - 如何从 PdfDocument 中提取字节 [] 数组
- flex-lexer - 当我使用 flex 生成 C++ 扫描器时,yytext 会成为 String 的对象吗?
- vb.net - 将一个文件附加到另一个文件中