Предположим, у нас есть простые отношения один-ко-многим между Компанией и Сотрудником, есть ли способ запросить все компании и иметь список сотрудников в атрибуте каждой компании?
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()
Нетрудно преобразовать это в желаемую структуру объекта, но я просто хотел посмотреть, есть ли ярлык.