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

胡安·卡洛斯·科托(Juan Carlos Coto):

设置JSONField使其具有新列表的默认值的最佳方法是什么django

语境

有一个模型,其中的一个字段是项目列表。如果未设置任何项目,则模型应具有一个空列表。

当前解决方案

from django.models import Model

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

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

谢谢!

jnns:

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

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

从文档引用:

如果为该字段提供默认值,请确保它是可调用项,例如list(用于空默认值)或返回列表的可调用项(例如函数)。错误使用default = []会创建一个可变的默认值,该默认值在以下所有实例之间共享

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

即使在POST请求之后,Django中的JSONField仍保持为空

如何在Gradle中将包装设置为pom而不是默认设置为jar

Django JSONField包含值列表

如何在浓缩咖啡测试中将我的应用设置为默认设置?

Django-如何在登录时将默认设置为request.session?

如何在Jersey中将默认设置为json而不是xml?

如何在Windows 10中将键盘重置为其原始默认设置?

如何在Windows中将桌面缩放级别重置为其默认设置?

如何在我的应用程序中将我的UISwitch状态默认设置为“ ON”?

Django Rest Framework和JSONField

如何在 Django 中查询设置为 ORDER BY 和 GROUP BY?

如何在页面加载时将列表标记默认设置为选中或激活

如何设置Angular UI Bootstrap Datepicker默认设置为空字段?

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

Django Admin:JSONField默认为空dict不会保存在admin中

将Django JSONField处理为YAML

Django JSONField,如何获取列表中存储的值的出现次数

如何在Django JSONField数据上聚合(最小/最大等)?

如何在Django中从JSONField追加/删除数据

如何在JSONField上使用django-filter

如何在Django中将浮点数和小数相乘?

如何在 Django 中设置本地文件和生产文件

如何在Django中管理本地和生产设置?

如何在 Django 中将默认用户设置为当前用户对象?

Django,JSONField,Postgres和F()对象比较

Django JSONField和TextField之间的区别

如何在 Django 模板中将 if 语句设置为 True?

如何将Compiz设置重置为默认设置?

如何在Django 1.6中更改隐式默认设置