确定!我有这个模型:
class my(models.Model):
name = models.TextField()
description = models.TextField()
created = models.DateTimeField()
def __unicode__(self):
return self.name
我从mssql数据库获取数据到此模型并保存。这样的事情。
mysql_name='somedata' #this data come from some connection with mssql
mssql_description='somedata' #this data come from some connection with mssql
mssql_created='somedata' #this data come from some connection with mssql
mymodel=my(name=mysql_name, description=mssql_description, created=mssql_created)
mymodel.save()
现在它在我的数据库中。我在循环中这样做,所以它填满了我的数据库。
然后我需要使用时间戳检查远程MSSQL服务器中的数据。我提出了SQL请求所以我只获得更新的数据。我必须覆盖旧数据。
问题是如何覆盖旧数据?我有点迷惑。
可能是这样吗?
mymodel=my.objects.get(name=mysql_Name)
mymodel.description=new_updated_description
mymodel.save
但如果我根本没有这个领域?....
如果我在数据库中拥有它,我必须要打架?如何......?
答案 0 :(得分:1)
只要使用相同的PK,该行将被覆盖。 get()
现有行,修改字段以及save()
最容易。
答案 1 :(得分:0)
您可以在模型管理器上使用get_or_create作为创建模型新实例或更新现有模型的快捷方式。有关示例,请参阅文档。