按ID /祖先从数据存储区中删除实体

我已经尝试了几个小时从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检索实体,我根本不需要它,还是我呢?


胡子哥哥
浏览 158回答 2
2回答

慕村9548890

您需要完整的密钥,包括祖先(如果有)。这是因为子ID本身不一定是唯一的:只有完整路径才是,因此您需要它来标识特定实体。就您而言,您可能只想要nb.Key('NewsBase', 'mynews', 'NewsBase', 8001)。(但是,我怀疑您首先要做的是奇怪的事情来创建密钥:让祖先的名字键与孩子的数字ID类型相同是不寻常的。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python