フィールド is_deleted を持つモデルがあり、.filter および .filter_by に渡されるフィルタリング引数に加えて、このモデルのすべての形式のクエリを常に is_deleted=False でフィルタリングする必要があります。
Django では、通常はマネージャーをオーバーライドして独自のフィルタリングを追加しますが、SQLAlchemy については助けが必要です。
アップデート:
私は最終的に次のことをしました:
class CustomQuery(Query):
def __new__(cls, *args, **kwargs):
if args and hasattr(args[0][0], "is_deleted"):
return Query(*args, **kwargs).filter_by(is_deleted=False)
else:
return object.__new__(cls)
session = scoped_session(sessionmaker(query_cls=CustomQuery))
それは機能しますが、後でフィールドが増えた場合は、さらに条件を追加する必要があると思います。モデルレベルでこれを行う方法が必要です。