我已经尝试了几个小时从GAE数据存储中删除实体,但该实体无法正常运行。我几乎做了与如何使用ID删除NDB实体相同的事情?,但是我确定问题出在祖先关系上。这是相关的代码:try: ndb.Key('NewsBase', int(self.request.get('delid'))).delete()当我打印出时,ndb.Key (self.request.out.write...)我得到类似的信息Key('NewsBase', 8008),它是正确的ID(已在数据存储区中检查)。在仪表板上,我还获得了“已解码实体密钥”,即NewsBase: name=mynews > NewsBase: id=8001我对如何包括祖先信息有些困惑,但是据我所知,从这里可以使用NDB中的Key检索实体,我根本不需要它,还是我呢?
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
您需要完整的密钥,包括祖先(如果有)。这是因为子ID本身不一定是唯一的:只有完整路径才是,因此您需要它来标识特定实体。
就您而言,您可能只想要nb.Key('NewsBase', 'mynews', 'NewsBase', 8001)
。
(但是,我怀疑您首先要做的是奇怪的事情来创建密钥:让祖先的名字键与孩子的数字ID类型相同是不寻常的。)
添加回答
举报
0/150
提交
取消