python - 无法更新 Django ArrayField
问题描述
我的 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 数组的值时,它并没有真正得到更新。
外壳命令是:
>>> 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 没有更新?
解决方案
为什么我的没有
x[0].X
更新?
因为您进行了新查询,从而检索了数据库中的值。为了持久更新(在数据库端),您需要保存已更新的对象。例如:
x = Views.objects.all()
x0 = x[0]
x0.X = [1,2,2,1]
x0.save()
# …
print(x[0].X)
推荐阅读
- ios - 在 Swift 中使用 Firebase 身份验证重新发送代码
- cs50 - CS50 pset5 拼写器
- azure-devops - 发布管道工件以在另一个管道中使用
- java - 如何更改片段内的汉堡包颜色?
- javascript - 如何使用 react 和 typescript 访问组件中的道具?
- php - 子域重定向
- node.js - NestJs - 类验证器不返回完整的验证错误对象
- javascript - JS函数调用中的模板字符串
- java - NIO Files.write with OpenOption:将字节数组写入一行中不存在的文件夹
- javascript - 如何在我的传单代码中修改图像的不透明度