SQLAlchemy 是否允许我们定义表(或查询),以便将特定谓词自动附加到该表上的所有查询?查询甚至可以通过关系/关联进行。我试图避免在每个模块中的每个查询表达式中添加 filter()。
例:表 T1 有列 col1,我希望该表上的每个 sqla 查询在将 sql 提交到 db 之前自动添加一个额外的谓词 col1='Y'。
我希望涉及 t1 对象的结果查询如下所示:
选择。。从 T1 哪里...和 t1.col1='Y'
选择。。从 T2 在 T2.x=T1.x 上加入 T1,其中 ...和 t1.col1='Y'
通过在表或关系的 xml 映射中添加 WHERE="col1='Y'" 属性,这在休眠中很容易做到。(这是至少 5 年前在休眠中完成的)。
我在 SQLA 版本 0.9 中使用带有 autoload=True 的声明性基础
方法可以实现此行为:
http://www.sqlalchemy.org/trac/wiki/UsageRecipes/PreFilteredQuery
http://www.sqlalchemy.org/trac/wiki/UsageRecipes/GlobalFilter