gpt4 book ai didi

python - 如何在 Django 和 django-jsonfield 中将 JSONField 的默认值设置为空列表?

转载 作者:太空狗 更新时间:2023-10-29 17:02:21 27 4
gpt4 key购买 nike

问题

设置 JSONField 的最佳方法是什么?在 django 中拥有新列表的默认值?

上下文

有一个模型,其中一个字段是项目列表。在没有项目集的情况下,模型应该有一个空列表。

当前解决方案

from django.models import Model

class MyModel(Model):
the_list_field = JSONField(default=[])

这是最好的方法吗?是否应该改为使用 list

谢谢!

最佳答案

根据Django documentation for JSONField你确实应该使用 default=list因为使用 default=[] 会创建一个可变对象,该对象在您的字段的所有实例之间共享,并可能导致某些对象没有默认的空列表。

请注意,这不仅适用于 django.contrib.postgres.fields.JSONField,还适用于所有其他类型的对象和函数 in Python in general .

引用自文档:

If you give the field a default, ensure it’s a callable such as list (for an empty default) or a callable that returns a list (such as a function). Incorrectly using default=[] creates a mutable default that is shared between all instances of

关于python - 如何在 Django 和 django-jsonfield 中将 JSONField 的默认值设置为空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42239818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com