Filtro por defecto de SQLAlchemy

Tengo un modelo con un campo is_deleted, ahora quiero que todas las formas de consulta para este modelo se filtren siempre por is_deleted = False además de los argumentos de filtrado que se pasen a .filter y .filter_by.

En Django, normalmente anularía al administrador y agregaría mi propio filtro, pero necesito ayuda para SQLAlchemy.

ACTUALIZAR:

Terminé haciendo lo siguiente:

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)) 

Funciona, pero si tengo más campos más adelante, me imagino que tendré que agregar más condiciones, debe haber una manera de hacerlo en el nivel del modelo.

Tenemos exactamente esta receta aquí en https://github.com/sqlalchemy/sqlalchemy/wiki/FilteredQuery