views:

23

answers:

2

I have a model in django that I want to update only, that is, when I call it and set the data, it will not create a new record, only update the existing one. How can I do this? Here is what I have:

class TemperatureData(models.Model):   
  date = models.DateTimeField()   
  value = models.PositiveIntegerField()   
  alert = models.BooleanField()

thanks in advance.

A: 

Django has some documentation about that on their website, see: Saving changes to objects. To summarize:

.. to save changes to an object that's already in the database, use save().

The MYYN
+2  A: 

If you get a model instance from the database, then calling the save method will always update that instance. For example:

t = TemperatureData.objects.get(id=1)
t.value = 999  # change field
t.save() # this will update only

If your goal is prevent any INSERTs, then you can override the save method, test if the primary key exists and raise an exception. See the following for more detail:

ars