或者我如何让这件事发挥作用?
我有一个区间对象:
class Interval(Base):
__tablename__ = 'intervals'
id = Column(Integer, primary_key=True)
start = Column(DateTime)
end = Column(DateTime, nullable=True)
task_id = Column(Integer, ForeignKey('tasks.id'))
@hybrid_property #used to just be @property
def hours_spent(self):
end = self.end or datetime.datetime.now()
return (end-start).total_seconds()/60/60
还有一个任务:
class Task(Base):
__tablename__ = 'tasks'
id = Column(Integer, primary_key=True)
title = Column(String)
intervals = relationship("Interval", backref="task")
@hybrid_property # Also used to be just @property
def hours_spent(self):
return sum(i.hours_spent for i in self.intervals)
当然,添加所有典型的设置代码。
现在当我尝试做session.query(Task).filter(Task.hours_spent > 3).all()
我NotImplementedError: <built-in function getitem>
从sum(i.hours_spent...
线上得到。
所以我正在查看文档的这一部分,并推测可能有某种方法可以让我写出我想要的东西。这部分看起来也可能有用,我会在这里等待答案的同时查看它;)