我想从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号的模型。那么我做错了什么?
答案 0 :(得分:3)
id可以是数据存储区中的字符串。所以Key('MyModel','42')可能正是您所寻找的。 Id可以是字符串或整数。 Here是进一步阅读的文档。
修改强> 您的MyModel实体是否具有父键?如果是,那么在构造密钥时你需要包含父代。