Skip to main content
 首页 » 编程设计

python之Django,Python,试图更改从数据库对象检索到的对象中的字段值/属性。所有调用,都不起作用

2025年05月04日26hnrainll

我正在尝试更改从 Django 数据库调用中检索到的对象中的字段中的特定字段。

class Dbobject () 
   def __init__(self): 
       dbobject = Modelname.objects.all() 
   def test (self): 
       self.dbobject[0].fieldname = 'some new value' 

然后我就可以像这样访问一个特定的属性:

objclass = Dbobject() 
fieldvalue = dbobject.dbobject[0].fieldname 

但我希望能够使用 Dbobject 类的“测试”方法来尝试更改对象属性值的特定值,但它并没有改变它。我对此感到困惑,因为我认为我应该如何更改对象的属性值。

请您参考如下方法:

我不确定这是否是问题所在,但我认为您可能缺少 save() 方法。

from models import Person 
p = Person.objects.get(pk=100) 
p.name = 'Rico' 
p.save()      # <== This writes it to the db. Is this what you're missing? 

以上是简单的情况。根据您上面写的内容进行改编,就像:

dbobject.dbobject[0].fieldname = 'some new value' 
dbobject.dbobject[0].save() 

或者,我会更像这样写:

rec = dbobject.dbobject[0] 
rec.fieldname = 'some new value' 
rec.save() 

另请注意,根据您是否使用事务以及如何使用事务,在提交之前您可能会或可能不会看到对数据库的更改。