GAE数据存储区:如何在db.DateTimeProperty()上设置过滤器

时间:2012-07-04 14:32:18

标签: google-app-engine google-cloud-datastore

您好我是GAE和Python的新手,来自PHP和MySQL背景。 如果我的问题很幼稚且没有足够的家庭作业,请道歉。

在我的应用程序中,我有很多主人,我想逐个显示这些主人(将视图切换到列表模式的选项)。

我的所有主模型都有一个名为ts的属性,在保存时会自动填充当前时间戳。

我的主类上有一个方法get_rec,它默认提取最后保存的记录。单击导航按钮时,系统应该采用上一个或下一个。为了实现这一点,我写了这段代码

q = db.Query(modl)
if pos == "prev" :
    #ts is a string returned by JSON as 2012-07-03T14:19:36.817000
    q.filter("ts <", ts.replace("T", " "))
    q.order('-ts')
elif pos == "next" :
    q.filter("ts >", ts.replace("T", " "))
    q.order('ts')
else :
    q.order('-ts')
res = q.fetch(1)
return simplejson.dumps(res, cls=jsonEncoder)

但返回的数据对象始终是最后一条记录。 BTW json发送的ts在前面有一个T,而在数据查看器控制台上,我找不到任何T而是一个空格。我尝试用空格替换T.我应该将日期对象作为datetime.datetime()而不是日期字符串传递吗?

我在这里错过了什么......

提前致谢

1 个答案:

答案 0 :(得分:1)

您需要将字符串转换为日期时间 - 过滤器,而不是使用我认为的字符串。

阅读第一份帮助http://docs.python.org/library/datetime.html

使用strftime和strptime(格式或解析)http://docs.python.org/library/datetime.html#strftime-strptime-behavior

请投票给答案!