为所有记录

时间:2017-03-28 14:09:36

标签: python django postgresql

在使用JSONField与Django和Postgres时,我设置了一个默认值

{
    "custom_value_a": "foo",
    "custom_value_b": "bar"
}

考虑一段时间后我想通过在其中添加另一个键来更改字段的默认值

"custom_value_c": "oof"

执行此操作的一种方法是运行一个脚本,该脚本遍历所有记录并更新JSONField以在数据库中的所有记录中包含key:value。

是否还有其他方法可以通过Django ORM更新它。

1 个答案:

答案 0 :(得分:0)

from django.contrib import admin

@admin.register(TheModel)
class TheModelAdmin(admin.ModelAdmin):
    actions = ['custom_action']
    def custom_action(self, request, queryset):
        queryset.update(json_fld__custom_value_c='oof')