web-dev-qa-db-fra.com

L'interrogation avec la fonction sur le modèle Flask-SQLAlchemy donne à l'objet BaseQuery une erreur non appelable

Je souhaite interroger les services entre deux dates et additionner leurs prix. Lorsque j'essaie d'utiliser func.sum avec Services.query, Je reçois TypeError: BaseQuery object is not callable. Comment interroger à l'aide d'une fonction avec Flask-SQLAlchemy?

Services.query(func.sum(Services.price)).filter(Services.dateAdd.between(start, end))
16
Christopher Nelson

Model.query Est un raccourci vers db.session.query(Model), il n'est pas appelable. Si vous n'interrogez pas un modèle, continuez à utiliser db.session.query(...) comme vous le feriez avec SQLAlchemy standard.

db.session.query(db.func.sum(Services.price)).filter(
    Services.dateAdd.between(start, end)
)
19
davidism