Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改|为Google App Engine数据存储上的模型实例分配父对象_Python_Google App Engine_Transactions_Google Cloud Datastore - Fatal编程技术网

Python 更改|为Google App Engine数据存储上的模型实例分配父对象

Python 更改|为Google App Engine数据存储上的模型实例分配父对象,python,google-app-engine,transactions,google-cloud-datastore,Python,Google App Engine,Transactions,Google Cloud Datastore,是否可以更改或为数据存储中已有的模型实例分配新的父对象?例如,我需要这样的东西 task = db.get(db.Key(task_key)) project = db.get(db.Key(project_key)) task.parent = project task.put() 但它不是这样工作的,因为task.parent是内置的方法。我正在考虑为任务创建一个新的键实例,但也没有办法更改键 有什么想法吗?根据,没有: 实体的父级已定义 当实体被创建时,并且不能 以后再换 实体的完整密

是否可以更改或为数据存储中已有的模型实例分配新的父对象?例如,我需要这样的东西

task = db.get(db.Key(task_key))
project = db.get(db.Key(project_key))
task.parent = project
task.put()
但它不是这样工作的,因为
task.parent
是内置的方法。我正在考虑为任务创建一个新的键实例,但也没有办法更改键

有什么想法吗?

根据,没有:

实体的父级已定义 当实体被创建时,并且不能 以后再换

实体的完整密钥, 包括路径、种类和类型 名称或数字标识,唯一且 特定于该实体。完整的 创建实体时,将指定键 在数据存储中创建,并且 它的部分可以改变

当需要在同一事务中操作父实体和子实体时,设置父实体非常有用。否则,您只能通过强制它们都位于同一实体组中来限制性能,并限制您在创建实体后更新关系的能力


使用ReferenceProperty代替。

顺便说一句,这里是微博示例中家长的另一个很好的用法。