我使用的是SQLAlchemy 0.5rc,我希望在关系中添加一个自动筛选器,这样每当它尝试为该关系提取记录时,如果它们被标记为"logically_deleted“(子表的布尔字段),它就会忽略”远程“记录。
例如,如果一个对象“父”有一个有3条记录的“子”关系,但其中一条记录在逻辑上被删除,那么当我查询“父”时,我希望SQLA只使用两个子记录来获取父对象。
我怎么发动汽车呢?通过在关系的主连接参数中添加"and“条件?(例如"Children.parent_id == Parent.id and Children.logically_deleted == False",但用这种方式写“和”正确吗?)
编辑:
我设法做到了这一点
children = relation("Children", primaryjoin=and_(id == Children.parent_id, Children.logically_deleted==False))但是,是否有一种方法可以使用字符串作为主连接呢?
发布于 2012-12-14 23:51:38
,但是是否有一种方法可以使用字符串作为主连接呢?
您可以使用以下内容:
children = relationship("Children", primaryjoin="and_(Parent.id==Children.parent_id, Children.logically_deleted==False)"这对我有用!
发布于 2008-11-06 08:48:54
我目前只是在重新开发0.4,但我建议这样做:
db.query(Object).filter(Object.first==value).filter(Object.second==False).all()我想这就是你想要做的,对吧?
(注:用网页浏览器编写,不是真正的代码!)
https://stackoverflow.com/questions/267861
复制相似问题