異なるファイル内のリレーションシップを持つテーブルを分離することに問題があります。以下のテーブルを 3 つの個別のファイルに分けて、TableAをサード パーティのページにインポートしたいのですが、読み込み順序を管理できません。
ほとんどの場合、次のエラーが表示されます。
sqlalchemy.exc. InvalidRequestError: マッパー Mapper|TableA|tablea を初期化するときに、式 'TableB' が名前を見つけられませんでした (「名前 'TableB' は定義されていません」)。これがクラス名の場合は、両方の依存クラスが定義された後に、この relationship() をクラスに追加することを検討してください。
class TableA(Base):
__tablename__ = "tablea"
id = Column(Integer, primary_key=True)
name = Column(String)
tableB = relationship("TableB", secondary = TableC.__table__)
class TableB(Base):
__tablename__ = "tableb"
id = Column(Integer, primary_key=True)
name = Column(String)
class TableC(Base):
__tablename__ = "tableab"
tableAId = Column("table_a_id", Integer, ForeignKey("TableA.id"), primary_key=True)
tableBId = Column("table_b_id", Integer, ForeignKey("TableB.id"), primary_key=True)