使用棉花糖序列化来自 sqlalchemy 的聚合结果的值

serialize values of aggregate results from sqlalchemy using marshmallow

我正在对 table 执行 count()group_by() 操作,如下所示:

db.session.query(func.count(Tag.name), Tag.name).group_by(Tag.name).limit(limit)

并使用棉花糖将其序列化:

class TagSchema(ma.ModelSchema):
    class Meta:
        model = Tag
    name = fields.String(validate=validate.Length(min=1))

结果为:

[{"name" : "asdf"},{"name":"qwer"}]

但我没有看到计数值,我应该如何更新架构以在输出中获取计数值。

首先将计数字段标记为:

db.session.query(func.count(Tag.name).label('count'), Tag.name).group_by(Tag.name).limit(limit)

然后添加一个新的 shema 为:

class TagCountSchema(ma.ModelSchema):
    name = fields.String()
    count = fields.Int(dump_only=True)