У меня есть модель с полем is_deleted, теперь я хочу, чтобы все формы запросов для этой модели всегда фильтровались по is_deleted=False в дополнение к чему бы то ни было аргументы фильтрации передаются в.filter и.filter_by.
В 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))
Это работает, но если позже у меня будет больше полей, я думаю, мне придется добавить больше условий, должен быть способ сделать это на уровень модели.