queryset query example documentacion django django-models

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: