我正在使用 SQLAlchemy 0.5rc,并且我想向关系添加一个自动过滤器,以便每次尝试获取该关系的记录时,如果它们被标记为“逻辑上已删除”,它将忽略“远程”记录"(子表的布尔字段)
例如,如果一个对象“父”有一个“子”关系,它有 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?