Peewee ORM查询字段/列SUM总和报错问题求助
解决方案
问题根因
- 你定义的
query是未执行的ModelSelect查询构造对象,并非实际查询结果,因此无法直接访问sum_total属性。 - 聚合查询返回的结果仅包含你指定的聚合字段,未查询
Package模型定义的其他字段,用model_to_dict转换时自然返回其他字段的null值,且全表求和仅返回1行结果,order_by子句无实际意义。
最简实现(直接返回求和值)
调用scalar()方法直接返回聚合计算的结果,无需额外处理:
from peewee import fn sum_total = Package.select(fn.SUM(Package.price)).scalar()
带别名的实现方式
如果需要保留自定义别名的写法,调用get()执行查询获取结果后再访问别名字段:
from peewee import fn sum_total = fn.SUM(Package.price).alias('sum_total') result = Package.select(sum_total).get() print(result.sum_total)
内容的提问来源于stack exchange,提问作者SimonB
相关产品推荐
相关产品推荐

