Скопируйте объект в хранилище данных Google App Engine в Python, не зная имен свойств во время «компиляции»

В приложении 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 (все свойства имеют значение по умолчанию), но не совсем то, что я хочу. Предложения?

Ответы на вопрос(7)

Ваш ответ на вопрос