Question
将JSONField
设置为django
中新列表的默认值的最佳方式是什么?
上下文
有一个模型,其中一个字段是项目列表.在没有设置项目的情况下,模型应该有一个空列表.
当前解决方案
from django.models import Model
class MyModel(Model):
the_list_field = JSONField(default=[])
这是最好的方法吗?应该改为使用list
吗?
谢谢!
将JSONField
设置为django
中新列表的默认值的最佳方式是什么?
有一个模型,其中一个字段是项目列表.在没有设置项目的情况下,模型应该有一个空列表.
from django.models import Model
class MyModel(Model):
the_list_field = JSONField(default=[])
这是最好的方法吗?应该改为使用list
吗?
谢谢!
根据Django documentation for JSONField,你确实应该使用default=list
请注意,这不仅适用于django.contrib.postgres.fields.JSONField
,而且适用于所有其他类型的对象和函数in Python in general.
引用文档中的话:
如果给字段一个默认值,请确保它是可调用的,如list(表示空默认值)或返回列表的可调用对象(如函数).错误地使用default=[]会创建在所有实例之间共享的可变默认值