I'm using SQLAlchemy 0.5rc, and I'd like to add an automatic filter to a relation, so that every time it tries to fetch records for that relation, it ignores the "remote" ones if they're flagged as "logically_deleted" (a boolean field of the child table)
For example, if an object "parent" has a "children" relation that has
3 records, but one of them is logically deleted, when I query for "Parent" I'd like SQLA to
fetch the parent object with just two children..
How should I do it? By adding an "and" condition to the primaryjoin
parameter of the relation? (e.g. "Children.parent_id == Parent.id and Children.logically_deleted == False
", but is it correct to write "and" in this way?)
Edit:
I managed to do it in this way
children = relation("Children", primaryjoin=and_(id == Children.parent_id, Children.logically_deleted==False))
but is there a way to use a string as primaryjoin instead?