2

我想从 Google Appengine ndb 获取一些数据。我有以下代码

keys = []
for field in self.request.arguments():
    keys.append(ndb.Key(models.MyModel, int(id)))

# Some unrelevant code

for k in keys:
    logging.info(k)

m = ndb.get_multi(keys)
for p in m:
    logging.info(p)

这给了我这个输出:

INFO     2012-09-07 13:18:23,436 main.py:58] Key('MyModel', 42)
INFO     2012-09-07 13:18:23,436 main.py:58] Key('MyModel', 44)
INFO     2012-09-07 13:18:23,437 main.py:58] Key('MyModel', 42)
INFO     2012-09-07 13:18:23,437 main.py:58] Key('MyModel', 43)
INFO     2012-09-07 13:18:23,437 main.py:58] Key('MyModel', 44)
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,444 main.py:62] None

我确定模型存在于具有该 ID 号的数据存储中。那么我做错了什么?

4

1 回答 1

3

id 可以是数据存储中的字符串。所以 Key('MyModel', '42') 可能是你要找的。ID 可以是字符串或整数。是进一步阅读的文档。

编辑: 您的 MyModel 实体是否有父键?如果是,那么您需要在构建密钥时包含父级。

于 2012-09-07T14:14:18.007 回答