我正在尝试运行此查询:
query = Model.query((Model.created + datetime.timedelta(hours=-6)) => date)
然而抛出了这个错误:
TypeError:+:'DateTimeProperty'和的不支持的操作数类型 'datetime.timedelta'
模特:
class Model(ndb.Model):
created = ndb.DateTimeProperty(auto_now_add=True)
我可以在查询中的日期添加timedelta吗?
答案 0 :(得分:0)
将Model.created转换为datetime.datetime对象,它将返回您可以使用的datetime.timedelta对象。
答案 1 :(得分:0)
在您的模型中,您有一个名为date
的属性。在您的查询中,您要求Model.created
。那些不一样。尝试将两者都更改为date_created
以避免混淆和冲突。通过常用方法或对象调用变量确实是一个坏习惯,即使它们没有被保留。而不是使用date
和Model
,而是更改为更具描述性的内容。可变冲突通常很难找到。
所以,试试:
cutoff_time = some_date + datetime.timedelta(hours=-6)
query = MyModelName.query(MyModelName.date_created >= cutoff_time)
使用:
class MyModelName(ndb.Model):
date_created = ndb.DateTimeProperty(auto_now_add=True)
另外,正确的语法是>=
,而不是=>