我遇到了问题而且没有找到任何相关信息.
我在这个模型中定义了一个字段.
class Dates(ndb.model):
...
date = ndb.DateTimeProperty(required = True) # I want to store date and time
...
Run Code Online (Sandbox Code Playgroud)
后来我尝试了一个查询(现在我想要一天的所有日期,我不介意时间):
kl = Dates.query(ndb.AND(Dates.date.year == year,
Dates.date.month == month,
Dates.date.day == day),
ancestor = customer.key).fetch(keys_only = True)
dates = ndb.get_multi(kl)
Run Code Online (Sandbox Code Playgroud)
但我收到此错误日志:AttributeError:'DateTimeProperty'对象没有属性'year'
我不知道为什么.我试过Dates.date()== date,Dates.date == date(<-DateTime obj),...
我的数据库仍然是空的,但我想这并不介意,因为我永远不会在每个可能的日子都有日期.
谁知道为什么?我应该使用GQL吗?
google-app-engine datetime app-engine-ndb google-cloud-datastore
当我使用几个相关的数组时,我发现了一种异化效应.在打破我的心灵寻找错误后,我终于找到了解决方案.但我想知道你们中是否有人能解释我为什么会这样.
我的代码是这样的:
var closed =['closed', 'closed', ..., 'closed'];
sunday = closed;
...
saturday = closed;
Run Code Online (Sandbox Code Playgroud)
在此之后,如果我这样做:
sunday[2] = 'open';
Run Code Online (Sandbox Code Playgroud)
我得到星期天[2] ='打开',星期一[2] ='打开',星期二[2] ='打开',...,星期六[2] ='打开'.就像所有变量都被"胶合"或链接一样,因为没有你改变的物质,所有变量都以同样的方式变化.
我用这种方式修复了它:
var closed1 =['closed', 'closed', ..., 'closed'];
...
var closed7 =['closed', 'closed', ..., 'closed'];
sunday = closed1;
...
saturday = closed7;
Run Code Online (Sandbox Code Playgroud)
现在我得到了自变量.但我不喜欢这个解决方案,所以如果有人知道这个问题,我将不胜感激.我在Google Chrome上运行JavaScript.
谢谢