当前位置:  开发笔记 > 编程语言 > 正文

Django对象改变模型字段

如何解决《Django对象改变模型字段》经验,为你挑选了1个好方法。

这不起作用:

>>> pa = Person.objects.all()
>>> pa[2].nickname
u'arst'
>>> pa[2].nickname = 'something else'
>>> pa[2].save()
>>> pa[2].nickname  
u'arst'

但是,如果你服用,它就有效

   p = Person.objects.get(pk=2)

并改变缺口.

为什么这样.



1> Andriy Drozd..:
>>> type(Person.objects.all())


>>> pa = Person.objects.all() # Not evaluated yet - lazy
>>> type(pa)

DB查询给你一个Person对象

>>> pa[2]

DB再次查询给你另一个Person对象.

>>> pa[2].first_name = "Blah" 

我们将此实例称为驻留在内存中的PersonObject1.所以它相当于这样的东西:

>>> PersonObject1.first_name = "Blah"

现在让我们这样做:

>>> pa[2].save() 

pa [2]再次查询db并返回person对象的另一个实例,例如PersonObject2.哪个会保持不变!所以它与调用类似的东西是等价的:

PersonObject2.save()

但这与PersonObject1无关.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有