2010-07-11 65 views
1

好的!我有这个模型:Django。更新数据库中的数据。简单的问题

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 

,但如果我完全不具备这个领域?....

我有赤,如果我有它在我的DATABSE?怎么样....?

回答

0

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

1

只要使用相同的PK,该行就会被覆盖。最简单的就是get()现有的行,修改字段和save()吧。