slqalchemy 多个外键指向同一个表报错

 nadia     2020-11-12     1444     0   

欢迎来到银盒子的世界~

来自博客https://blog.csdn.net/supertree_l/article/details/104173838

ERROR in server: Could not determine join condition between parent/child tables on relationship TestUser.tasks - there are multiple foreign key paths linking the tables.  Specify the 'foreign_keys' argument, providing a list of those columns which should be counted as containing a foreign key reference to the parent table.
Traceback (most recent call last):

 

 

直接贴出解决方案

class TestUser(db.Model):
    __tablename__ = 'testUsers'
    id = db.Column(db.Integer, primary_key=True)
    # tasks = db.relationship('TestTask', back_populates='initiator')
    # orders = db.relationship('TestTask', back_populates='errandor')

class TestTask(db.Model):
    __tablename__ = 'testTasks'
    id = db.Column(db.Integer, primary_key=True)
    initiatorId = db.Column(db.Integer, db.ForeignKey("testUsers.id"))
    errandorId = db.Column(db.Integer, db.ForeignKey("testUsers.id"))
    initiator = db.relationship('TestUser', backref="tasks", uselist=False, foreign_keys=[initiatorId])
    errandor = db.relationship('TestUser', backref="orders", uselist=False,foreign_keys=[errandorId])

发表评论