Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I clone a Django model instance object and save it to the database?

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

In the database, I want to add another object which is a copy of the object above.

Suppose my table has one row. I want to insert the first row object into another row with a different primary key. How can I do that?

like image 739
user426795 Avatar asked Jan 19 '11 09:01

user426795


1 Answers

Just change the primary key of your object and run save().

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

If you want auto-generated key, set the new key to None.

More on UPDATE/INSERT here.

Official docs on copying model instances: https://docs.djangoproject.com/en/2.2/topics/db/queries/#copying-model-instances

like image 123
miah Avatar answered Oct 04 '22 02:10

miah