Я использую sqlalchemy для управления моей БД. Это мои таблицы
class Series(Base):
__tablename__ = "Series"
id = Column("Id", Integer, primary_key=True, autoincrement=True)
series_name = Column("SeriesName", Unicode(50), nullable=False, unique=True)
class Season(Base):
__tablename__ = "Seasons"
id = Column("Id", Integer, primary_key=True, autoincrement=True)
series_id = Column(
"SeriesId", Integer, ForeignKey(f"{Series.__tablename__}.Id"), nullable=False
)
season_number = Column("SeasonNumber", Integer, nullable=False)
series = relationship("Series", uselist=False, lazy='joined', innerjoin=True)
__table_args__ = (UniqueConstraint("SeriesId", "SeasonNumber", name="UQ_SeriesId_SeasonNumber"),)
class Episode(Base):
__tablename__ = "Episodes"
id = Column("Id", Integer, primary_key=True, autoincrement=True)
episode = Column("Episode", Integer, nullable=False)
episode_name = Column("EpisodeName", Unicode, nullable=True)
season_id = Column(
"SeasonId", Integer, ForeignKey(f"{Season.__tablename__}.Id"), nullable=False
)
season = relationship("Season", uselist=False, lazy='joined', innerjoin=True)
__table_args__ = (UniqueConstraint("SeasonId", "Episode", name="UQ_SeasonId_Episode"),)
class DownloadStatus(aenum.Enum):
Start = "Start"
Processing = "Processing"
Downloading = "Downloading"
Finish = "Finish"
class Request(Base):
__tablename__ = "DownloadRequests"
id = Column("Id", Integer, primary_key=True, autoincrement=True)
status = Column("Status", Enum(DownloadStatus), nullable=False)
episode_id = Column(
"EpisodeId", Integer, ForeignKey(f"{Episode.__tablename__}.Id"), nullable=True
)
episode = relationship("Episode", uselist=False, lazy='joined', innerjoin=True)
В моем коде мне нужно найти конкретный c запрос, после завершения сеанса с сервером sql я возвращаю запрос, после завершения сеанса хочу использовать эпизод, связанный с этим запросом, с внешним ключом, однако, когда я пытаюсь получить доступ к эпизоду с помощью request.episode
, я получаю DetachedInstanceError
как я могу удалить запись всех внешних ключей вместе с основной записью?