Django的。更新db中的数据。简单的问题

时间:2010-07-11 02:06:48

标签: database django model

确定!我有这个模型:

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

我正在MySQL数据库中创建字段并保存

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

但如果我根本没有这个领域?....

如果我在数据库中拥有它,我必须要打架?如何......?

2 个答案:

答案 0 :(得分:1)

只要使用相同的PK,该行将被覆盖。 get()现有行,修改字段以及save()最容易。

答案 1 :(得分:0)

您可以在模型管理器上使用get_or_create作为创建模型新实例或更新现有模型的快捷方式。有关示例,请参阅文档。