假设我们在 Company 和 Employee 之间有一个简单的一对多关系,有没有办法查询所有公司并在每个公司的属性中都有一个员工列表?
class Company(Base):
__tablename__ = 'company'
id = Column(Integer, primary_key=True)
name = Column(String)
class Employee(Base):
__tablename__ = 'employee'
id = Column(Integer, primary_key=True)
first_name = Column(String)
last_name = Column(String)
company_id = Column(Integer, ForeignKey(Company.id))
我正在寻找这样的东西:
>>> result = db.session.query(Company).join(Employee).all()
>>> result[0].Employee
[<Employee object at 0x...>, <Employee object at 0x...>]
结果的大小应与公司表中的行数相同。
我尝试了以下方法,它提供了对象元组(这是有道理的)而不是好的父/子结构:
>>> db.session.query(Company, Employee).filter(Company.id = Employee.company_id).all()
将其转换为我想要的对象结构并不难,只是想看看是否有任何捷径。
月关宝盒
慕慕森
相关分类