检索两个模型之间的关系对象

时间:2019-02-18 14:04:36

标签: python sqlalchemy

我们假设在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]

这有点笨拙。

0 个答案:

没有答案