Finally, I got a workaround trying to figure it out. In my case, I do not need to put backref in the Review class. Instead, I have to put the backref user in the User class. So it should look below
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)
Here both types of users have many reviews. Then, when I need to get a list of reviews about all User , I can do this
user = User.query.get(id) user_reviews = User.user_reviews business_user_reviews = user.business_user_reviews
And I no longer encounter this error.
source share