Flask foreign_keys 仍然显示 AmbiguousForeignKeysError

Flask foreign_keys still shows AmbiguousForeignKeysError

我在一个实体中有两个外键引用另一个实体。 这是它的样子

    class Review(db.Model):
      __tablename__ = 'Review'
      id = db.Column(db.Integer, primary_key = True)
      user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False)
      business_user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False)
      user = db.relationship('User', foreign_keys=[user_id])
      business_user = db.relationship('User', foreign_keys=[business_user_id])

class User(db.Model):
  __tablename__ = 'User'
  id = db.Column(db.Integer, primary_key = True)
  reviews = db.relationship('Review', backref='user',
                            lazy='dynamic')

但是,它仍然显示错误

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

以上解决方法是我从其他帖子中得到的。我已经检查并更改了很多次,但仍然没有运气。我想知道它是否已经正确或者我想念什么。需要帮助

经过百思不得其解,终于找到了解决方法。就我而言,我不必将 backref 放在评论 class 中。相反,我应该将用户 backref 放在 User class 本身中。所以,它应该如下所示

class Review(db.Model):
  __tablename__ = 'Review'
  id = db.Column(db.Integer, primary_key = True)
  user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False)
  business_user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False)
  user = relationship('User', backref='user_reviews', foreign_keys=user_id)
  business_user = relationship("User", backref='business_user_reviews', foreign_keys=[business_user_id])

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

在这里,两种类型的用户都有很多评论。然后,当我需要获取User的评论列表时,我可以做的是

user = User.query.get(id)
user_reviews = User.user_reviews
business_user_reviews = user.business_user_reviews

而且我不再运行遇到这个错误。