update def __str__ python django orm

python - def - diferencia entre objects.create() y object.save() en django orm



select where django (1)

u = UserDetails.objects.create(first_name=''jake'',last_name=''sullivan'') u.save()

UserDetails.objects.create() y u.save() realizan la misma función de save() . ¿Cuál es la diferencia? ¿Hay algún cheque adicional o beneficio en el uso de create() vs save() ?

Preguntas similares:
- ¿Cuál es la mejor manera de crear un objeto modelo en Django?
- Django: diferencia entre guardar () y crear () desde la perspectiva de la transacción


La documentación de Django dice que es la misma . Es más conveniente hacerlo en una sola línea. También puede hacer un save() en una línea, pero sería más detallado y menos legible. Está claro que está creando un nuevo objeto con el método create() .

create(**kwargs)

Un método conveniente para crear un objeto y guardarlo todo en un solo paso. Así:

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

y:

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

son equivalentes

El parámetro force_insert está documentado en otra parte, pero todo lo que significa es que siempre se creará un nuevo objeto. Normalmente no tendrás que preocuparte por esto. Sin embargo, si su modelo contiene un valor de clave principal manual que estableció y si ese valor ya existe en la base de datos, una llamada a create() fallará con un IntegrityError ya que las claves primarias deben ser únicas. Esté preparado para manejar la excepción si está usando claves primarias manuales.