【发布时间】:2021-07-02 15:36:12
【问题描述】:
我正在创建一个评级系统。评级是一个表格,其中包含单个评级作为行。每个评级都有一个“评级者”和一个“评级者”。这两列通过外键引用不同的表“用户”。但是,它们都引用了相同的 user.id 列。代码:
class Rating(db.Model):
id = db.Column(db.Integer, primary_key=True)
rater_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
ratee_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
下面是它们在 User 类(表)中的表示方式:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(32), unique=True, nullable=False)
ratesOfOthers = db.relationship('Rating', backref='rater', lazy=True)
ratingsByOthers = db.relationship('Rating', backref='ratee', lazy=True)
现在,当我尝试使用这种关系时,出现以下错误:
sqlalchemy.exc.AmbiguousForeignKeysError:无法确定关系 User.ratesOfOthers 上的父/子表之间的连接条件 - 有多个外键路径链接表。指定 'foreign_keys' 参数,提供应计为包含对父表的外键引用的列的列表。
我尝试在 User 类中使用 foreign_keys 参数,但没有任何效果。任何帮助将不胜感激。
【问题讨论】:
标签: python-3.x sqlalchemy foreign-keys flask-sqlalchemy