为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

胡子哥哥 2021-03-30 17:09:57
我已经尝试了几个小时从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类型相同是不寻常的。)


查看完整回答
反对 回复 2021-04-02
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信