或者我该如何让这件事情起作用?如何在SQLAlchemy中实现空合并运算符?
我有一个时间间隔对象:
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...
线。
所以我在寻找this part的文档,并推论说可能有某种方法可以写出我想要的东西。 This part也看起来像它可能是有用的,我会在这里等待一个答案时看它;)
我觉得这个链接会更好地工作:http://progblog10.blogspot.com/2014/06/handling-null-values -in-sqlalchemy.html – Kirk
你是对的!感谢您修复该链接。 –