我已經(jīng)嘗試了幾個(gè)小時(shí)從GAE數(shù)據(jù)存儲(chǔ)中刪除實(shí)體,但該實(shí)體無(wú)法正常運(yùn)行。我?guī)缀踝隽伺c如何使用ID刪除NDB實(shí)體相同的事情?,但是我確定問(wèn)題出在祖先關(guān)系上。這是相關(guān)的代碼:try: ndb.Key('NewsBase', int(self.request.get('delid'))).delete()當(dāng)我打印出時(shí),ndb.Key (self.request.out.write...)我得到類(lèi)似的信息Key('NewsBase', 8008),它是正確的ID(已在數(shù)據(jù)存儲(chǔ)區(qū)中檢查)。在儀表板上,我還獲得了“已解碼實(shí)體密鑰”,即NewsBase: name=mynews > NewsBase: id=8001我對(duì)如何包括祖先信息有些困惑,但是據(jù)我所知,從這里可以使用NDB中的Key檢索實(shí)體,我根本不需要它,還是我呢?
2 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
您需要完整的密鑰,包括祖先(如果有)。這是因?yàn)樽覫D本身不一定是唯一的:只有完整路徑才是,因此您需要它來(lái)標(biāo)識(shí)特定實(shí)體。
就您而言,您可能只想要nb.Key('NewsBase', 'mynews', 'NewsBase', 8001)
。
(但是,我懷疑您首先要做的是奇怪的事情來(lái)創(chuàng)建密鑰:讓祖先的名字鍵與孩子的數(shù)字ID類(lèi)型相同是不尋常的。)
添加回答
舉報(bào)
0/150
提交
取消