【发布时间】:2010-09-21 00:54:59
【问题描述】:
我正在使用 SQLAlchemy 0.5rc,我想为关系添加一个自动过滤器,以便每次尝试获取该关系的记录时,如果它们被标记,它就会忽略“远程”记录作为“logically_deleted”(子表的布尔字段)
例如,如果对象“父”具有“子”关系,该关系具有
3 条记录,但其中一条在逻辑上已被删除,当我查询“父级”时,我希望 SQLA 能够
获取只有两个孩子的父对象..
我该怎么做?通过向primaryjoin添加“and”条件
关系的参数? (例如“Children.parent_id == Parent.id and Children.logically_deleted == False”,但是这样写“and”是否正确?)
编辑:
我设法以这种方式做到了
children = relation("Children", primaryjoin=and_(id == Children.parent_id, Children.logically_deleted==False))
但是有没有办法将字符串用作primaryjoin?
【问题讨论】:
标签: python sqlalchemy