小编r3d*_*00d的帖子

在迁移文件中正确声明空Django PostgreSQL JSONField默认值

我有点迷失了解释Django对PostgreSQL JSONField应用默认值解释:

如果为该字段指定默认值,请确保它是可调用的,例如dict(对于空默认值)或返回dict(例如函数)的可调用对象.错误地使用default={}会创建在JSONField的所有实例之间共享的可变默认值.

所以在我的模型文件中,我已经声明了默认值

foo = JSONField(default=dict())
Run Code Online (Sandbox Code Playgroud)

但是,当我为新字段生成迁移操作时,这就是结果

migrations.AddField(
    model_name='bar',
    name='foo',
    field=django.contrib.postgres.fields.jsonb.JSONField(default={}))
Run Code Online (Sandbox Code Playgroud)

我只是不确定这个结果是否符合文档的建议.这是有效的,还是应该修改生成的默认值来调用dict()

python django postgresql

8
推荐指数
1
解决办法
2346
查看次数

标签 统计

django ×1

postgresql ×1

python ×1