使用ManyToManyFields复制django对象

时间:2011-06-14 16:09:28

标签: python django duplicates manytomanyfield

我使用Django,我有一些带有ManyToManyFields的对象。我想复制这些对象。 我发现'deepcopy'几乎完美无缺。

>>> 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中快速完成吗?

感谢。

1 个答案:

答案 0 :(得分:5)

只需使用旧对象添加它们:

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