@Radist_101

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

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

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

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 14:38
8000 руб./за проект
07 мая 2024, в 14:38
15000 руб./за проект
07 мая 2024, в 14:36
70000 руб./за проект