我希望能够运行以下SQLAlchemy查询:
q_done = Batch.query.filter(Batch.done)
q_running = Batch.query.filter(~Batch.done)
但是我不能把精力集中在写与我的done
混合属性相对应的expression
。在
SQLAlchemy模型:
^{pr2}$我试图实现相应的expression
,但没有成功。很难理解如何返回布尔查询。这是我谦虚的尝试:
@done.expression
def done(self):
total_actions = db.session.query(func.sum(Batch.actions))
finished_actions = db.session.query(func.sum(Batch.actions.done))
return db.session.query(Batch).filter(total_actions == finished_actions)
问题是
total_actions
和finished_actions
都是hybrid attributes
,因此不能在expression
中用于done
。在我必须为每个返回查询而不是值的函数添加相应的
expression
。在以下是完整代码:
相关问题 更多 >
编程相关推荐