Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将NDB Datetimeproperty转换为日期_Python_Google App Engine_Datetime_App Engine Ndb - Fatal编程技术网

Python 将NDB Datetimeproperty转换为日期

Python 将NDB Datetimeproperty转换为日期,python,google-app-engine,datetime,app-engine-ndb,Python,Google App Engine,Datetime,App Engine Ndb,我有一个NDB datetime属性存储在Google应用程序引擎上。我试图通过将datetime转换为日期,然后过滤查询中大于或等于昨天日期的内容,来查询昨天以来的所有记录。但是,我得到以下错误: follower_trans = fol.query( datetime.datetime.date(fol.followed_date) >= self.yesterday).fetch() TypeError:描述符“date”需要“datetime.datetime”对象,但收

我有一个NDB datetime属性存储在Google应用程序引擎上。我试图通过将datetime转换为日期,然后过滤查询中大于或等于昨天日期的内容,来查询昨天以来的所有记录。但是,我得到以下错误:

follower_trans = fol.query(
    datetime.datetime.date(fol.followed_date) >= self.yesterday).fetch()
TypeError:描述符“date”需要“datetime.datetime”对象,但收到了“DateTimeProperty”


如果我只使用
datetime.date()
它会发送一个错误,需要一个整数作为参数。

fol.foll\u date
是模型的属性,而不是实体的值。无法将属性转换为日期,因为它没有值。您需要修复查询构造函数:

follower_trans = fol.query(fol.followed_date >= self.yesterday).fetch()
(假设您已将self.treaty创建为datetime对象。)

此外,任何类名都可以使用大写字母。应该是:

class Fol(ndb.Model):
    followed_date =  ndb.DateTimeProperty(auto_now_add = True)


您不能将转换作为查询的一部分,因此您必须将“昨天”创建为日期时间并使用该日期时间进行筛选。

当我尝试fol.followerd\u date.date()时,我遇到以下错误:AttributeError:“DateTimeProperty”对象没有属性“date”。问题是您使用的是属性而不是值。您的查询应该类似于
fol.query(fol.followed>=self.dayed)。fetch()
fol.followed\u是模型的属性,而不是实体的日期。从技术上讲,查询应该是
fol.query(fol.fol.followed>=self.dayed)
这假设
昨天
实际上是一个日期时间。如果是日期,您可能需要首先将其转换为日期时间。是的,错误来自尝试将属性
fol.followerd\u date
转换为日期对象。
Fol.query(Fol.followed_date >= self.yesterday).fetch()