Hoặc làm cách nào để làm cho tính năng này hoạt động?Làm cách nào để triển khai toán tử kết hợp rỗng trong SQLAlchemy?
tôi có một đối tượng 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
Và một nhiệm vụ:
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)
Thêm tất cả các mã cài đặt điển hình, tất nhiên.
Bây giờ khi tôi cố gắng làm session.query(Task).filter(Task.hours_spent > 3).all()
tôi nhận được NotImplementedError: <built-in function getitem>
từ dòng sum(i.hours_spent...
.
Vì vậy, tôi đã xem this part tài liệu và được giả thuyết rằng có thể có một số cách để tôi có thể viết một cái gì đó sẽ làm những gì tôi muốn. This part cũng giống như nó có thể được sử dụng, và tôi sẽ xem xét nó trong khi chờ đợi một câu trả lời ở đây;)
Tôi nghĩ rằng liên kết này sẽ làm việc tốt hơn: http://progblog10.blogspot.com/2014/06/handling-null-values -in-sqlalchemy.html – Kirk
Bạn nói đúng! Cảm ơn bạn đã sửa liên kết đó. –