使用 SQLAlchemy,有没有办法预先知道关系是否会延迟加载?
例如,给定一个惰性父->子关系和“parent”的实例 X,我想知道“X.children”是否已加载,而不触发查询。
您可以从以下位置获取所有已卸载属性(关系和列)的列表sqlalchemy.orm.attributes.instance_state(obj).unloaded
.
See: 用其关系完成对象并避免 sqlalchemy 中不必要的查询 https://stackoverflow.com/questions/5795492/completing-object-with-its-relations-and-avoiding-unnecessary-queries-in-sqlalch
更简单的方法是使用inspect()
,给出相同的结果:
from sqlalchemy import inspect
from sqlalchemy.orm import lazyload
user = session.query(User).options(lazyload(User.articles)).first()
ins = inspect(user)
ins.unloaded # <- set or properties that are not yet loaded
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)