在Google App Engine中使用Python复制数据存储中的实体,而不需要在“编译”时知道属性名称。
- 论坛
- 在Google App Engine中使用Python复制数据存储中的实体,而不需要在“编译”时知道属性名称。
2 浏览
在Google App Engine中使用Python复制数据存储中的实体,而不需要在“编译”时知道属性名称。
在我正在编写的Python Google App Engine应用程序中,我有一个存储在数据存储中的实体,我需要检索它,制作一个完全相同的副本(除了键),然后将这个实体放回去。
我应该如何做到这一点?特别是,在执行此操作时,是否有任何注意事项或技巧需要注意,以便获得我期望的副本而不是其他内容。
更新:好吧,我试了一下,确实遇到了问题。我希望在编写代码时不必知道属性的名称来制作副本。我的想法是这样的:
#theThing = 从模型Thing中检索到的特定实体 copyThing = Thing(user = user) for thingProperty in theThing.properties(): copyThing.__setattr__(thingProperty[0], thingProperty[1])
这段代码执行时没有任何错误...直到我尝试从数据存储中检索copyThing时,我发现所有的属性都被设置为None(除了user和key,显然)。所以显然这段代码在做一些事情,因为它将默认值替换为None(所有属性都有设置默认值),但不是我想要的结果。有什么建议吗?