无法更新Django ArrayField

时间:2019-11-09 13:23:36

标签: python django

我的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 个答案:

答案 0 :(得分:1)

  

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

因为您进行了新查询,因此检索了数据库中的值。为了持续更新 (在数据库端),您需要保存已更新的对象。例如:

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

# …
print(x[0].X)