モデル自体との多対多の関係を構成する際に問題が発生します。通常の関係構成を使用する場合、つまり、Associationオブジェクトを使用しない場合は、自己多対多の関係を構成できます。
このシナリオでは、多対多のテーブル自体にいくつかの追加情報を記録する必要があるため、Associationオブジェクト(PageLink)を使用して関係を実装しようとしています。
こちらがモデルです。
class PageLink(Base):
'''
Association table.
'''
__tablename__ = 'page_links'
id = Column(Integer,primary_key=True)
page_from = Column(Integer,ForeignKey('page.id'),primary_key=True)
page_to = Column(Integer,ForeignKey('page.id'),primary_key=True)
extra_col1 = Column(String(256),nullable=False)
class Page(Base):
'''
main table
'''
__tablename__ = 'page'
id = Column(Integer,primary_key=True)
name = Column(String(56),nullable=False)
linked = relationship('PageLinks',backref='parent_page',
primaryjoin=id==PageLink.page_from,
secondaryjoin=id==PageLink.page_to)
このアプローチは機能しません。'secondaryjoin'キーワードを削除しようとしましたが、機能しません。
この問題に関するヘルプやアドバイスをいただければ幸いです。
読んでくれてありがとう。