【发布时间】:2011-02-10 21:03:20
【问题描述】:
在我正在编写的 Python Google App Engine 应用程序中,我有一个存储在数据存储区中的实体,我需要检索该实体,制作它的精确副本(密钥除外),然后将该实体放回去在。
我该怎么做?特别是,在执行此操作时是否需要注意任何警告或技巧,以便获得我期望的副本而不是其他内容。
ETA:好吧,我试过了,但确实遇到了问题。我想以这样一种方式制作我的副本,这样我在编写代码时就不必知道属性的名称。我的想法是这样做:
#theThing = a particular entity we pull from the datastore with model Thing
copyThing = Thing(user = user)
for thingProperty in theThing.properties():
copyThing.__setattr__(thingProperty[0], thingProperty[1])
这执行没有任何错误...直到我尝试从数据存储中提取 copyThing,此时我发现所有属性都设置为 None(显然除了用户和密钥)。很明显,这段代码正在做某事,因为它用 None 替换了默认值(所有属性都设置了默认值),但根本不是我想要的。有什么建议吗?
【问题讨论】:
标签: python google-app-engine google-cloud-datastore