[Django]-Django model manager objects.create where is the documentation?

38👍

✅

It’s in the page “QuerySet API reference”, linked from the documentation index.

49👍

p = Person.objects.create(first_name="Bruce", last_name="Springsteen")

equivalent to:

p = Person(first_name="Bruce", last_name="Springsteen") 
p.save(force_insert=True)

The force_insert means that a new object will always be created.
Normally you won’t need to worry about this. However, if your model
contains a manual primary key value that you set and if that value
already exists in the database, a call to create() will fail with an
IntegrityError since primary keys must be unique. Be prepared to
handle the exception if you are using manual primary keys.

4👍

create essentially does the same. below is the source code for create.

def create(self, **kwargs):
    """
    Creates a new object with the given kwargs, saving it to the database
    and returning the created object.
    """
    obj = self.model(**kwargs)
    self._for_write = True
    obj.save(force_insert=True, using=self.db)
    return obj

it creates an instance and then saves it.

1👍

Basically, these two methods are equivalent. The usage of Model.objects.create could be preferred since it is more suited to the style of Django.

Leave a comment