如何更新模型中的字段而不在django中创建新记录?
问题描述:
我在django中有一个模型,我只想更新,也就是说,当我调用它并设置数据时,它不会创建新记录,只会更新现有的记录。我怎样才能做到这一点?以下是我有:如何更新模型中的字段而不在django中创建新记录?
class TemperatureData(models.Model):
date = models.DateTimeField()
value = models.PositiveIntegerField()
alert = models.BooleanField()
答
如果您从数据库中获取模型实例,则调用save方法将始终更新该实例。例如:
t = TemperatureData.objects.get(id=1)
t.value = 999 # change field
t.save() # this will update only
如果你的目标是防止任何插入,那么你就可以,如果主键存在覆盖save
方法,测试和产生异常。请参阅以下详细:
答
你应该做这种方式非常
t = TemperatureData.objects.get(id=1)
t.value = 999
t.save(['value'])
这允许您指定的列应该保存和剩下一些,因为他们目前在数据库中。 (https://code.djangoproject.com/ticket/4102)!
如何更新ManyToMany关系字段? – Jay 2015-04-17 12:35:57
是否还有其他解决方案?这看起来更像是“SELECT/UPDATE”而不是简单的“UPDATE” – Loic 2015-08-10 08:57:41