我的数据存储区中有一些Ice-entity。 当我在admin-webInterface
上运行以下内容时from google.appengine.ext import db
class Ice(db.Model):
name = db.StringProperty()
description = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
for ice in Ice.all():
print ice.key().id()
print Ice.get_by_id(ice.key().id())
我总是得到:
4
None
5
None
6
None
7
None
8
None
9
None
10
None
11
None
12
None
13
None
14
None
15
None
16
None
17
None
18
None
19
None
20
None
为什么?
答案 0 :(得分:1)
如果您的Ice
实体是子实体,您会看到这种行为。 id字段不是全局唯一的 - 仅对给定种类和父级是唯一的。
答案 1 :(得分:-1)
您正在使用Ice.key()
。您想要Model.get_by_key_name()
吗?
答案 2 :(得分:-1)
我最近也遇到过get_by_id方法的问题。我使用的是SDK 1.7.6。问题是新的dev_appserver创建的数据存储区实体id值大于Javascript可以处理的值。我可以使用顺序ID在您的开发环境中修复。
使用此链接获取进一步说明Issue 1.7.6
当我搜索问题的解决方案时,我对所有关于失踪父母的反馈感到困惑。我没有失去父亲关系,仍然get_by_id没有工作!我希望这个答案可以为有同样问题的人节省一些时间......