小编Osc*_*rra的帖子

日期时间字段的ndb查询错误 - Google App Engine

我遇到了问题而且没有找到任何相关信息.

我在这个模型中定义了一个字段.

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

11
推荐指数
2
解决办法
7316
查看次数

数组在初始化时"胶合"

当我使用几个相关的数组时,我发现了一种异化效应.在打破我的心灵寻找错误后,我终于找到了解决方案.但我想知道你们中是否有人能解释我为什么会这样.

我的代码是这样的:

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.

谢谢

javascript arrays google-chrome

3
推荐指数
1
解决办法
63
查看次数