get_multi(keys)返回一个None数组



我想从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号的模型存在于数据存储中。那么我做错了什么?

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

编辑:您的MyModel实体是否具有父密钥?如果是,则在构造密钥时需要包含父项。

最新更新