2010-07-11 3 views
1

Хорошо! У меня есть эта модель:Django. Обновление данных в db. Легкий вопрос

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().

Смежные вопросы