小编kan*_*eer的帖子

SQLAlchemy使用Association配置与self的多对多关系

我遇到了与模型本身配置多对多关系的问题.当我使用普通关系配置(即不使用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)
Run Code Online (Sandbox Code Playgroud)

这种方法不起作用.我试过删除'secondaryjoin'关键字,但它不起作用.

非常感谢有关此事的任何帮助或建议.

谢谢你的阅读.

python orm sqlalchemy flask-sqlalchemy

3
推荐指数
1
解决办法
1855
查看次数

标签 统计

flask-sqlalchemy ×1

orm ×1

python ×1

sqlalchemy ×1