Или как я могу заставить эту работу работать?Как реализовать нулевой коалесцирующий оператор в SQLAlchemy?
У меня есть Interval объект:
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
Вы правы! Спасибо за исправление этой ссылки. –