是否可以将新父级更改或分配给已存在于数据存储区中的Model实例?例如,我需要这样的东西
task = db.get(db.Key(task_key))
project = db.get(db.Key(project_key))
task.parent = project
task.put()
但它不起作用,因为task.parent
是内置方法。我正在考虑为任务创建一个新的Key实例,但也无法更改密钥。
有什么想法吗?
答案 0 :(得分:9)
根据the docs,否:
定义实体的父级 什么时候创建实体,而不能 稍后改变。
...
实体的完整密钥, 包括路径,种类和 名称或数字ID,是唯一的 特定于该实体。完整的 当实体是,分配密钥 在数据存储区中创建,而不是 它的部分可以改变。
当您需要在同一事务中操作父级和子级时,设置父实体非常有用。否则,您只是通过强制它们在同一个实体组中来限制性能,并限制您在创建实体后更新关系的能力。
改为使用ReferenceProperty。