在SQLAlchemy中,有没有办法将父属性映射到子级以便快速访问?

时间:2016-03-01 15:50:18

标签: orm sqlalchemy

如果我有

Category()
  products = db.relationship('Product', backref='category')
  name = Column(String())

Product()
  name = Column(String())
  category_id = Column(Integer(), ForiegnKey('category.id')

当我这样做时

Product.query.join(Category).options(contains_eager(Product.category)).all()

我希望最终得到一个产品列表,其中包含一个伪造的产品。 (或ORM用语中的瞬态)category_name字段已填充,因此我不必像这样查询类别

product.category.name

并且可以改为

product.category_name

由于

1 个答案:

答案 0 :(得分:1)

您可以使用association proxies执行此操作:

class Product(Base):
    ...
    category_name = association_proxy("category", "name")