2012-03-19 61 views
2

克隆现有的文件到一个新的兄弟姐妹class文件我有以下类使用mongoengine

class ParentDocument(Document): 
    . 
    . 
    . 

class Child1Document(ParentDocument): 
    . 
    . 
    . 

class Child2Document(ParentDocument): 

    . 
    . 
    . 

现在,让我们说,我有型Child1Document的文件。是否可以将它克隆到一个新的Child2Document类型的文档?

我试图做:

doc1 = Child1Document() 
doc1.attr1 = foo 
doc1.save() 

doc2 = Child2Document() 
doc2 = doc1 

但这种转换DOC2到Child1Document类型。有没有办法将doc1的所有内容复制到doc2而不转换doc2?

回答

3

是的,它是可能的,但你需要使用deepcopy的

你的代码会是这个样子:

from copy import deepcopy 

doc1 = Child1Document() 
doc1.attr1 = foo 
doc1.save() 

doc2 = deepcopy(doc1) 
doc2.id = None 
doc2.save() 

克隆!