Skip to main content
 首页 » 编程设计

python之一个模型 sqlalchemy 中的两个外键重复

2025年05月04日10Leo_wl

关于堆栈溢出还有其他答案,我跟着他们。这个问题已经 3 天了,我之前已经搜索过所有答案,我觉得即使它是重复的问题,我也应该害怕问我是否在经过大量研究后无法让它工作。

期望的结果是使用 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. 

我哪里错了?

请您参考如下方法:

试试这个。

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

到

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