Flask SqlAlchemy - 使用foreignkey进行分组和计数

时间:2018-03-04 16:32:39

标签: python orm group-by sqlalchemy flask-sqlalchemy

我有两个使用外键链接的表:

class Region(db.Model):
    __tablename__ = 'regions'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(55), nullable=False)
    items = db.relationship('Item', backref='region', lazy='dynamic')

class Item(db.Model):
    __tablename__ = 'items'
    id = db.Column(db.Integer, primary_key=True)
    region_id = db.Column(db.Integer, db.ForeignKey('regions.id'))

我想知道特定地区有多少物品。我可以使用项目表中的region_id字段执行此操作,如下所示:

field = Item.region_id
count = func.count(field)
query = db.session.query(count, field).group_by(field).all()

但是,我真的不想使用Item.region_id进行分组,我真的想使用name使用Region类的backref列进行分组。如下所示:

field = Item.region.name
count = func.count(field)
query = db.session.query(count, field).group_by(field).all()

有一种简单的方法吗?

0 个答案:

没有答案