2012-03-19 60 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() 

克隆!