一尘不染

如何克隆Django模型实例对象并将其保存到数据库?

python

Foo.objects.get(pk="foo")
<Foo: test>

在数据库中,我想添加另一个对象,它是上述对象的副本。

假设我的桌子有一排。我想用不同的主键将第一行对象插入另一行。我怎样才能做到这一点?


阅读 191

收藏
2021-01-20

共1个答案

一尘不染

只需更改对象的主键并运行save()。

obj = Foo.objects.get(pk=<some_existing_pk>)
obj.pk = None
obj.save()

如果要自动生成的密钥,请将新密钥设置为“无”。

有关UPDATE /
INSERT的更多信息,请点击这里

有关复制模型实例的官方文档:https :
//docs.djangoproject.com/en/2.2/topics/db/queries/#copying-model-
instances

2021-01-20