2010-07-11 63 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()吧。