4
我使用get_by_id()來讀取NDB實體的實體組中,我不明白這一點,並針對有實體組的一部分實體合作:NDB:如何使用get_by_id爲實體
from google.appengine.ext import ndb
class Folder(ndb.Model):
name = ndb.StringProperty()
parent_folder_key = Folder(name = 'Parent folder').put()
sub_folder_key = Folder(name = 'Subfolder', parent=parent_folder_key).put()
id_list = []
print 'All folders:'
for f in Folder.query():
print f
id_list.append(f.key.id())
print '\nFolders by id:'
for id in id_list:
print Folder.get_by_id(id)
輸出:
All folders:
Folder(key=Key('Folder', 5814), name=u'Parent folder')
Folder(key=Key('Folder', 5814, 'Folder', 5815), name=u'Subfolder')
Folders by id:
Folder(key=Key('Folder', 5814), name=u'Parent folder')
None
是設計或者是一個錯誤嗎?當我使用命名空間(我正在使用SDK 1.6.6)時,我看到有關於get_by_id()的been some issues。我如何能從ID的父母文件夾?
的ID是唯一的,即使有父母,所以我不明白爲什麼它不應該是可以通過其ID來獲得和實體即使這裏是父母。 –
一個id只對那個特定的實體組是唯一的。一個id只是一個鍵的一部分,它也包含父實體。 get_by_id將需要重建完整的實體鍵以獲取實體。 – aschmid00
謝謝aschmid00。我理解這一點的方式是,沒有父母和祖先的實體形成自己的實體組。如果是這種情況,則對於整個模型類,id必須是唯一的。我錯了嗎? –