【发布时间】:2014-07-28 17:08:58
【问题描述】:
我有一个 Query 对象,最初配置为 lazyload() 模型上的所有关系:
query = session.query(Article).options(lazyload('author'))
是否可以将关系加载恢复为默认值?例如。该关系是用lazy='joined' 配置的,我希望查询具有joinedload() 行为而不显式使用joinedload()。
我期待defaultload() 有这种行为,但实际上它没有:它引用查询默认值而不是关系默认值。所以我正在寻找一种resetload() 解决方案。
这样做的原因是因为我正在创建基于 JSON 的查询语法,除非用户明确命名,否则不应加载任何关系。
目前,我在所有未明确请求的关系上使用lazyload(),但想反过来:lazyload() 首先是所有关系,然后为其中一些关系覆盖它。
这会使代码更加简洁。
【问题讨论】:
标签: python sqlalchemy relationship