query - ¿Cómo actualizar campos en un modelo sin crear un nuevo registro en django?
django queryset (3)
Deberías hacerlo de esta manera idealmente
t = TemperatureData.objects.get(id=1)
t.value = 999
t.save([''value''])
Esto le permite especificar qué columna se debe guardar y qué resto se deja como están actualmente en la base de datos. ( https://code.djangoproject.com/ticket/4102 )!
Tengo un modelo en django que quiero actualizar solo, es decir, cuando lo llamo y configuro los datos, no creará un nuevo registro, solo actualizará el existente. ¿Cómo puedo hacer esto? Esto es lo que tengo:
class TemperatureData(models.Model):
date = models.DateTimeField()
value = models.PositiveIntegerField()
alert = models.BooleanField()
Django tiene cierta documentación sobre eso en su sitio web, ver: Guardar cambios en los objetos . Para resumir:
.. para guardar los cambios en un objeto que ya está en la base de datos, use
save().
Si obtienes una instancia de modelo de la base de datos, entonces llamar al método de guardar siempre actualizará esa instancia. Por ejemplo:
t = TemperatureData.objects.get(id=1)
t.value = 999 # change field
t.save() # this will update only
Si su objetivo es evitar cualquier INSERT, puede anular el método de save , probar si la clave principal existe y generar una excepción. Vea lo siguiente para más detalles: