@Radist_101

Возможно ли переопределить Model.query в SQLAlchemy?

Доброго времени суток!
Каким образом можно переопределить query в модели SQLAlchemy? Например мне надо всегда получать активные точки:
Place.query.filter(Place.is_deleted == False)
  • Вопрос задан
  • 213 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
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))
Источник.

В качестве альтернативного варианта можно прямо в БД создать соответствующий VIEW:
CREATE VIEW actual_places AS
    SELECT *
    FROM places
    WHERE is_deleted = FALSE;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы