无法更新Django的ArrayField

3

我在我的model.py文件中有一个类,代码如下:

class Views(models.Model):
    X = ArrayField(models.IntegerField(blank = True))
    Y = ArrayField(models.DecimalField(blank = True,max_digits=2, decimal_places=2))

我把X和Y的默认值设为[0,0,0,0,0,0,0,0,0,0]。但是当我尝试更新X或Y数组的值时,它们实际上并没有得到更新。
Shell命令如下:
>>> from productsHome.models import Views
>>> x = Views.objects.all()
>>> x
<QuerySet [<Views: Views object (5)>]>
>>> x[0]
<Views: Views object (5)>
>>> x[0].X
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> x[0].X = [1,2,2,1]
>>> x[0].X
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>>    

为什么我的 x[0].X 没有被更新?
1个回答

1

为什么我的 x[0].X 没有被更新?

因为你创建了一个新的查询,从数据库中重新获取了值。为了进行持久化更新(在数据库端),你需要保存被更新的对象。例如:

x = Views.objects.all()
<b>x0 = x[0]</b>
x0.X = [1,2,2,1]
<b>x0.save()</b>

# …
print(x[0].X)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接