whens = [When(pk=x, then=_json['info'][str(x)]) for x in ids]
Clinics.objects.filter(pk__in=ids).update(
info_json=Case(*whens, output_field=JSONField())
)
我想使用 JSONField() 的 Case-When 语句执行批量更新。当我在每次迭代中使用 save() 在一个愚蠢的循环中执行此操作时,一切正常。但上面的代码写了我:django.db.utils.ProgrammingError: can't adjustment type 'dict'
说第二行。我也尝试过 json.loads(),但没有成功。我应该怎么做才能执行多次更新?
我使用的是 Python 3.6.3 和 Django 1.11.16
最佳答案
目前,您只能迭代实例并一次更新一个实例。然而,Django 2.2将引入bulk_update()
这将做你想做的事。
关于python - 在 Django 中使用 JSONField 进行批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54234969/