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

时间:2019-09-19 03:11:08

标签: flask sqlalchemy flask-sqlalchemy marshmallow

我正在如下表上执行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"}]

但是我看不到计数值,如何更新架构以在输出中获取计数值。

1 个答案:

答案 0 :(得分:0)

首先将count字段标记为:

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)