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=Trueblank=True 添加到 JSONField 定义来解决我的问题:

JSONField(null=True, blank=True)