小编Pie*_*aul的帖子

按关系中的项目计数过滤结果

假设我有这两个模型:

def Client(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    invoices = db.relationship('Invoice', backref='client')


def Invoice(db.Model):
    id = db.Column(db.Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

我想要检索Client至少1 Invoice和不到20的所有Invoice.我希望它能像这样工作:

Client.query.join(Invoice).filter(and_(Invoice.count() > 1, Invoice.count() <= 20))
Run Code Online (Sandbox Code Playgroud)

或者甚至这会很好:

Client.query.join(Invoice).filter(and_(count_(Invoice) > 1, count_(Invoice) <= 20))
Run Code Online (Sandbox Code Playgroud)

但当然,这不可能是这么简单..count()不能从那里工作很明显,我无法找到一个count_()sqlalchemy.func.

sqlalchemy

6
推荐指数
1
解决办法
1162
查看次数

标签 统计

sqlalchemy ×1