2011-06-14 21 views
4

我使用Django,並且有一些ManyToManyFields對象。我想重複這些對象。 我發現'deepcopy'幾乎完美的工作。使用ManyToManyFields複製django對象

>>> e = Equipement.objects.get(pk=568) 
>>> ee = deepcopy(e) 
>>> ee.connexion.all() 
[<Connexion: COMETE - Proxyweb>] 
>>> ee.id=None 
>>> ee.save() 
>>> ee.connexion.all() 
[] 

我不想在保存時丟失ManyToMany信息。你知道爲了在Django中快速做到這一點嗎?

謝謝。

回答

4

使用舊的對象只需添加他們:

ee = deepcopy(e) 
ee.id=None 
ee.save() 
ee.connexion.add(*e.connexion.all()) 
+0

這就是它! 坦克很多。 – psychoze 2011-06-15 12:52:56