Django模型中save方法为何对未变更字段也执行了更新操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计903个文字,预计阅读时间需要4分钟。
我这就简化一下这段代码,不超过100个字:
pythonobj=Obj.objects.get(id=1)print(obj.name)
我就废话不多说了,直接上代码吧!
obj = Obj.objects.get(id=1) print obj.name #此时name的值假定为'abc' def handler(oid): obj = Obj.objects.get(id=oid) obj.name = '123' obj.save() handler(obj.id) obj.age = 10 obj.save() print obj.name
最终的name结果依然为'abc'。save()保存时,虽然没有更改其它字段,但依然会将内存中的值,再次存入数据库,子函数和其它进程更改的值会被覆盖。
本文共计903个文字,预计阅读时间需要4分钟。
我这就简化一下这段代码,不超过100个字:
pythonobj=Obj.objects.get(id=1)print(obj.name)
我就废话不多说了,直接上代码吧!
obj = Obj.objects.get(id=1) print obj.name #此时name的值假定为'abc' def handler(oid): obj = Obj.objects.get(id=oid) obj.name = '123' obj.save() handler(obj.id) obj.age = 10 obj.save() print obj.name
最终的name结果依然为'abc'。save()保存时,虽然没有更改其它字段,但依然会将内存中的值,再次存入数据库,子函数和其它进程更改的值会被覆盖。

