Django - 批量更新阵列行postgres

时间:2016-02-26 07:23:58

标签: python django postgresql django-queryset

如何更新多行

我是模特,

class ModelA(models.Model):
    colA = ArrayField(models.IntegerField())

我想更新ModelA的所有行,即例如: - 我想在列1的所有行中附加colA

如果它是正常的专栏,我会做以下事情: -

ModelA.objects.all().update(colA="foo")

如何批量更新Arrayfield?

3 个答案:

答案 0 :(得分:0)

我认为目前无法做到这一点,我认为你能做的最好就是迭代模型。

for model in ModelA.objects.all():
    for val in model_a.colA:
        val = val + 1
    model.save()

如果您愿意,也可以将此作为原子事务执行。虽然可能值得考虑该字段是否真的应该是数组字段。

答案 1 :(得分:0)

您可以尝试使用django-bulk-update包。虽然我不确定它是否可以处理ArrayField

答案 2 :(得分:-1)

为什么不进行数据库迁移?我相信Django的数据库迁移系统应该可以让你轻松完成。