无法更改列表中模型对象的字段值

时间:2010-12-15 01:16:28

标签: python django django-models

为什么在尝试设置列表中包含的模型对象的字段值时,该值不会被设置,但是当我将该索引处的对象存储到变量中时,然后尝试改变它,我成功了吗?以下是我的意思的一个例子。

In [64]: profile[0].screen_name = "clutch"

In [65]: profile[0].screen_name

In [66]: p = profile[0]

In [67]: p.screen_name = "clutch"

In [68]: p.screen_name
Out[68]: 'clutch'

1 个答案:

答案 0 :(得分:1)

我的猜测是你的情况下的个人资料不是一个列表而是一个QuerySet。因此,每次对其进行索引时,它都会对数据库执行查询以获取对象。

在您的代码之前尝试此操作:

profile = list(profile)

这样查询就会执行,结果现在在列表中。