2012-03-19 10 views
2

を使用して新しい兄弟クラスの文書に既存の文書、私は次のクラスクローンmongoengine

class ParentDocument(Document): 
    . 
    . 
    . 

class Child1Document(ParentDocument): 
    . 
    . 
    . 

class Child2Document(ParentDocument): 

    . 
    . 
    . 

を持っている今の私はタイプChild1Documentの文書を持っているとしましょう。それをChild2Document型の新しい文書に複製することは可能ですか?

私がやることを試みた:

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

doc2 = Child2Document() 
doc2 = doc1 

が、これはChild1Document型にDOC2を変換します。 doc2を変換せずにdoc1のすべての内容をdoc2にコピーする方法はありますか?

答えて

3

はい、それは可能ですが、あなたはこのようになりますdeepcopy

あなたのコードを使用する必要があります。

from copy import deepcopy 

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

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

をクローン化!