【问题标题】:Django. Update data in db. Easy question姜戈。更新数据库中的数据。简单的问题
【发布时间】:2011-03-14 09:20:30
【问题描述】:

好的!我有这个模型:

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

但是如果我根本没有这个字段呢?......

如果我的数据库中有它,我必须检查它吗?怎么……?

【问题讨论】:

    标签: database django model


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-07-18
        • 2012-05-29
        • 2021-11-09
        • 2021-09-17
        • 2016-05-02
        • 1970-01-01
        • 2014-02-02
        • 2014-07-23
        • 1970-01-01
        相关资源
        最近更新 更多