У меня есть набор сущностей с родительскими ключами и идентификаторами строк. Иногда мне нужно изменить идентификатор строки (обновить объект с новым идентификатором). Из этого вопроса (Modify a Google App Engine entity id?), похоже, мне нужно создать новый объект и удалить старый.Каков наилучший способ клонирования объекта NDB?
Конечно, я хочу сохранить все свойства старого объекта при создании нового, но, похоже, для объектов NDB не существует метода clone
.
Это лучший способ изменить идентификатор объекта, сохраняя при этом родителя?
# clone the old_entity and parent as new_entity
new_entity = MyModel(**old_entity.to_dict(), id=new_id, parent=old_entity.parent())
И потом, я должен быть в состоянии сделать это, чтобы заменить старый объект с новым:
new_entity.put() # save the new entity
old_entity.key.delete() # delete the old entity
Вы можете réf запись [копию entity] (http://stackoverflow.com/questions/2687724/copy-anentent-in-google-app-engine-datastore-in-python-without-knowing-property) для объекта копирования. – Sanch
http://stackoverflow.com/questions/14314344/how-to-copy-all-entities-in-a-kind-in-gae-to-another-kind-without-explicitly-cal –