Django jsonfields ValidationError: [u'Enter valid JSON'] upon upgrade from 1.7 to 1.9
Django jsonfields ValidationError: [u'Enter valid JSON'] upon upgrade from 1.7 to 1.9
我正在将 django 从 1.7 升级到 1.9,方法是通过 apt-get
将安装在系统 (Debian 8) 中的软件包替换为通过 pip
安装的软件包。
所以,我从 pip 安装了 jsonfield
包而不是 apt 的旧 python-django-jsonfield
并尝试了 运行 单元测试。
我所有的 jsonfields,定义为 jsonfield.JSONField()
,测试失败并显示消息:
ValidationError: [u'Enter valid JSON']
之前一切正常。有什么想法,有什么变化吗?
对于 Django 1.7,我使用 jsonfield 0.9
,但现在我安装了 jsonfield 1
,它们之间存在显着差异。不幸的是,jsonfield 0.9
使用了 simplejson
(from django.utils import simplejson as json
),它在 Django 1.9 中不可用。
因为无论如何我都在使用 Django 1.9,并且 django.contrib.postgres.fields
中有对 JSONField
的内置支持,所以我切换到了它。我通过将 null=True
、blank=True
添加到 JSONField
定义来解决我的问题:
JSONField(null=True, blank=True)
我正在将 django 从 1.7 升级到 1.9,方法是通过 apt-get
将安装在系统 (Debian 8) 中的软件包替换为通过 pip
安装的软件包。
所以,我从 pip 安装了 jsonfield
包而不是 apt 的旧 python-django-jsonfield
并尝试了 运行 单元测试。
我所有的 jsonfields,定义为 jsonfield.JSONField()
,测试失败并显示消息:
ValidationError: [u'Enter valid JSON']
之前一切正常。有什么想法,有什么变化吗?
对于 Django 1.7,我使用 jsonfield 0.9
,但现在我安装了 jsonfield 1
,它们之间存在显着差异。不幸的是,jsonfield 0.9
使用了 simplejson
(from django.utils import simplejson as json
),它在 Django 1.9 中不可用。
因为无论如何我都在使用 Django 1.9,并且 django.contrib.postgres.fields
中有对 JSONField
的内置支持,所以我切换到了它。我通过将 null=True
、blank=True
添加到 JSONField
定义来解决我的问题:
JSONField(null=True, blank=True)