首页 > 解决方案 > 检索两个模型之间的关系对象

问题描述

假设 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]

这感觉有点笨拙。

标签: pythonsqlalchemy

解决方案


推荐阅读