Я хотел бы создать собственный метод, чтобы сообщить мне, существует ли строка в моей базе данных.Метод SQLAlchemy exists
возвращает подзапрос, но ничего не выполняет, поэтому я хотел создать метод does_exist
, который будет просто возвращать True
или False
.Вот мой код:
from flask_sqlalchemy import SQLAlchemy, BaseQuery, Model
class CustomBaseQuery(BaseQuery):
def does_exist(self):
return db.session.query(self.exists()).scalar()
db = SQLAlchemy(app, query_class=CustomBaseQuery)
Это действительно работает, но кажется неправильным ссылаться на db.session
в теле метода, что, таким образом, зависит от последующего присвоения имени экземпляру SQLAlchemy db
.Я хотел бы найти способ ссылаться на возможный объект db.session
в более общем виде.
Полный рабочий пример здесь: https://gist.github.com/wbruntra/3db7b630e6ffb86fe792e4ed5a7a9578