首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向与SQLAlchemy的关系中添加自动筛选器?

如何向与SQLAlchemy的关系中添加自动筛选器?
EN

Stack Overflow用户
提问于 2008-11-06 07:33:11
回答 2查看 2.5K关注 0票数 10

我使用的是SQLAlchemy 0.5rc,我希望在关系中添加一个自动筛选器,这样每当它尝试为该关系提取记录时,如果它们被标记为"logically_deleted“(子表的布尔字段),它就会忽略”远程“记录。

例如,如果一个对象“父”有一个有3条记录的“子”关系,但其中一条记录在逻辑上被删除,那么当我查询“父”时,我希望SQLA只使用两个子记录来获取父对象。

我怎么发动汽车呢?通过在关系的主连接参数中添加"and“条件?(例如"Children.parent_id == Parent.id and Children.logically_deleted == False",但用这种方式写“和”正确吗?)

编辑:

我设法做到了这一点

代码语言:javascript
复制
children = relation("Children", primaryjoin=and_(id == Children.parent_id, Children.logically_deleted==False))

但是,是否有一种方法可以使用字符串作为主连接呢?

EN

回答 2

Stack Overflow用户

发布于 2012-12-14 23:51:38

,但是是否有一种方法可以使用字符串作为主连接呢?

您可以使用以下内容:

代码语言:javascript
复制
children = relationship("Children", primaryjoin="and_(Parent.id==Children.parent_id, Children.logically_deleted==False)"

这对我有用!

票数 10
EN

Stack Overflow用户

发布于 2008-11-06 08:48:54

我目前只是在重新开发0.4,但我建议这样做:

代码语言:javascript
复制
db.query(Object).filter(Object.first==value).filter(Object.second==False).all()

我想这就是你想要做的,对吧?

(注:用网页浏览器编写,不是真正的代码!)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/267861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档