我正在将django从1.7升级到1.9,通过apt-get
替换安装在系统(Debian 8)中的软件包,通过pip
安装软件包。
所以,我从pip安装了jsonfield
软件包,而不是apt的旧版python-django-jsonfield
,并尝试运行单元测试。
我的所有jsonfields(定义为jsonfield.JSONField()
)都没有通过消息测试失败:
ValidationError: [u'Enter valid JSON']
以前一切都很好。有什么想法,改变了什么?
答案 0 :(得分:5)
使用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而且JSONField
中有django.contrib.postgres.fields
的内置支持,所以我转而使用它。我通过将null=True
,blank=True
添加到JSONField
定义来解决我的问题:
JSONField(null=True, blank=True)