gpt4 book ai didi

python - 如何在 SQLAlchemy 中实现空合并运算符?

转载 作者:太空狗 更新时间:2023-10-29 17:28:51 26 4
gpt4 key购买 nike

或者我该如何使它发挥作用?

我有一个间隔对象:

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看起来它也可能有用,我会在此处等待答案的同时查看它;)

最佳答案

有关 SQLAlchemy 合并函数的简单示例,这可能会有所帮助:Handling null values in a SQLAlchemy query - equivalent of isnull, nullif or coalesce .

以下是该帖子中的几行关键代码:

from sqlalchemy.sql.functions import coalesce
my_config = session.query(Config).order_by(coalesce(Config.last_processed_at, datetime.date.min)).first()

关于python - 如何在 SQLAlchemy 中实现空合并运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com