Django保存/更新不会更改数据库中的数据

时间:2018-09-20 11:31:12

标签: mysql python-3.x

Django 1.11.7 MySQL

我试图像这样更改对象的值:

# change the value of the filed and save

def patch(...): 
   instance.field_name = new_name
   instance.save()
   print(instance.filed_name)

运行代码时,我得到的打印结果为new_name。但是当我手动检查数据库时,结果为old_name

然后我尝试了以下方式:

instance.save(update_fields=['field'])

ModelName.objects.filter(id=instance.id).update(field_name=new_name)

但是也遇到上述问题。同时,该项目运行正常,除了这段代码。

任何想法导致此问题的原因或如何解决的建议?

1 个答案:

答案 0 :(得分:0)

  1. 这是一段交易内的代码吗?也许交易稍后会回滚。
  2. 当您从数据库读取时,您是否在事务中?某些交易模式可能不会向您显示此更改。
  3. 您确定field_name是正确的字段名称吗?也许您有错别字,而您只是设置对象的属性而不更改模型字段。从我看来,您有时会键入“ field_name”,有时会键入“ filed_name”