胡安·卡洛斯·科托(Juan Carlos Coto):
题
设置JSONField
使其具有新列表的默认值的最佳方法是什么django
?
语境
有一个模型,其中的一个字段是项目列表。如果未设置任何项目,则模型应具有一个空列表。
当前解决方案
from django.models import Model
class MyModel(Model):
the_list_field = JSONField(default=[])
这是最好的方法吗?是否应改为使用list
?
谢谢!
jnns:
根据JSONField的Django文档,您确实应该使用,default=list
因为使用default=[]
会创建一个可变对象,该可变对象在字段的所有实例之间共享,并且可能导致某些对象默认不具有空列表。
请注意,这通常不仅适用于Python,django.contrib.postgres.fields.JSONField
而且还适用于Python中的所有其他类型的对象和函数。
从文档引用:
如果为该字段提供默认值,请确保它是可调用项,例如list(用于空默认值)或返回列表的可调用项(例如函数)。错误使用default = []会创建一个可变的默认值,该默认值在以下所有实例之间共享
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句