Python 一个模型中有两个外键sqlalchemy复制

Python 一个模型中有两个外键sqlalchemy复制,python,sqlalchemy,Python,Sqlalchemy,关于堆叠溢出还有其他答案,我遵循了它们。这个问题已经解决了三天了,我之前已经搜索了所有的答案,我觉得即使是重复的问题,我也应该害怕问,如果我在做了很多研究之后不能让它工作的话 期望的结果是使用sqlalchemy在一个模型中使用外键 class User(db.Model): id = db.Column(db.Integer, primary_key=True) class OrderHistory(db.Model): id = db.Column(db.Integ

关于堆叠溢出还有其他答案,我遵循了它们。这个问题已经解决了三天了,我之前已经搜索了所有的答案,我觉得即使是重复的问题,我也应该害怕问,如果我在做了很多研究之后不能让它工作的话

期望的结果是使用sqlalchemy在一个模型中使用外键

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)

class OrderHistory(db.Model):    
    id = db.Column(db.Integer(), primary_key=True)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    seller_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    user = db.relationship(User, foreign_keys=[user_id], backref='user')
    seller = db.relationship(User, foreign_keys=[seller_id], backref='seller')
但我总是犯这个错误

AmbiguousForeignKeysError: Could not determine join condition between parent/child tables on relationship User.order_history - 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.
我错了什么?

查看文档。可能您正在使用sqlalchemy版本试试这个

user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
seller_id = db.Column(db.Integer, db.ForeignKey('user.id'))


你的sqlalchemy版本是什么?Flask sqlalchemy V 0.10我所做的是从Flask_sqlalchemy导入SQLAlchemyDon你不需要一个主键列用于
OrderHistory
?我认为这个版本有问题。这段代码将在sqlalchemy>=0.9i下运行。我确实需要一个主键列顺序历史记录,但我留下它只是为了代码更少
user_id = db.Column(db.Integer, db.ForeignKey(User.id))
seller_id = db.Column(db.Integer, db.ForeignKey(User.id))