我们假设在SQLAlchemy中定义了两个模型:
用户:
class User(db.Model):
first_name = db.Column(db.String(80))
last_name = db.Column(db.String(80))
产品:
class Product(db.Model):
first_name = db.Column(db.String(80))
user_id = db.Column(db.Integer(), db.ForeignKey('users.id'))
user = db.relationship("User", foreign_keys=[user_id], backref='products')
created_by = db.Column(db.Integer, db.ForeignKey('users.id'))
created_by_user = db.relationship("User", foreign_keys=[created_by])
除了以下方式以外,还有其他方法可以检索模式Product -> User
中的所有关系:
fk_mapper = Product.__mapper__
fk_relationships = list(fk_mapper.relationships)
product_user_rels = [item for item in fk_relationships if item.mapper.class_ is User]
这有点笨拙。