SQLAlchemy按子代数进行多对多筛选器行

All*_*Lin 3 python sql many-to-many sqlalchemy

检索一个以上孩子的表中所有行的最佳方法是什么?我试过了:

session.query(Parent).filter(len(Parent.children)>1).all() 
Run Code Online (Sandbox Code Playgroud)

但我收到错误消息“ InstrumentedAttribute类型的对象没有len()”。我已经能够使所有至少有一个孩子的父母使用:

session.query(Parent).filter(Parent.children).all()
Run Code Online (Sandbox Code Playgroud)

r-m*_*m-n 7

使用Have()

from sqlalchemy import func

session.query(Parent).\
        join(Parent.children).\
        group_by(Parent).\
        having(func.count(Child.id) > 1)
Run Code Online (Sandbox Code Playgroud)