Баг при загрузке вложенных данных из бд sqlalchemy

Не могу разобраться с sqlalchemy запросами. У меня есть 3 модели:

class Master(Base):
   master_id = Column(BigInteger, primary_key=True, autoincrement=False)
   ...
   photos = relationship(
        "MasterPhotos", back_populates="master", cascade="delete, delete-orphan"
    )
class Complaints(Base):
   complaint_id = Column(Integer, primary_key=True)
   ...
   master = relationship("Master", back_populates="complaints")
class MasterPhotos(Base):
       photo_id = Column(Integer, primary_key=True)
    master_id = Column(BigInteger, ForeignKey("master.master_id"), nullable=False)
    photo_path = Column(String(400), nullable=False)

    master = relationship("Master", backref="master_photos")

Нужно получить все записи из Complaints так, чтобы вывод содержал все данные о мастере и все его фотографии из таблицы MasterPhotos.

Я уже реализовал такую выборку из другой модели вот так:

result = await session.execute(
                            select(MessageToWeb)
                            .options(
                                  selectinload(MessageToWeb.master)
                                  .selectinload(Master.photos)
                                        )
                                        .where(MessageToWeb.user_id == id)
                                        .order_by(MessageToWeb.complaint_date.asc())
                                    )

Но беда в том, что при использовании такого же кода:

selectinload(Complaints.master)
.selectinload(Master.photos), 

Я получаю ошибку ORM mapped entity or attribute "Master.photos" does not link from relationship "Complaints.master". Помогите разобраться


Ответы (0 шт):