Siempre leo que debería usar
model = Model(a=5, b=6)
model.save()
Pero acabo de ver que hay una función de administrador para crear, porque vi una aplicación django de código abierto usándola.
model = Model.objects.create(a=5, b=6)
print model.pk
1
Entonces, ¿se sugiere usarlo? ¿O todavía se prefiere utilizar el método .save? Supongo que objects.create intentará crearlo sin importar qué, mientras que save puede guardar un objeto existente si se especifica el pk.
Estos son los documentos que encontré: https://docs.djangoproject.com/en/dev/topics/db/queries/#creating-objects
Respuestas:
Está en la página "Referencia de la API de QuerySet" , vinculada desde el índice de documentación.
fuente
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
equivalente a:
p = Person(first_name="Bruce", last_name="Springsteen") p.save(force_insert=True)
fuente
create esencialmente hace lo mismo. a continuación se muestra el código fuente para crear.
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
crea una instancia y luego la guarda.
fuente
Básicamente, estos dos métodos son equivalentes . Se
Model.objects.create
podría preferir el uso de ya que se adapta más al estilo de Django.fuente