我有点迷失了解释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()?