Django jsonfields ValidationError: [u'Enter valid JSON'] 从 1.7 升级到 1.9
Posted
技术标签:
【中文标题】Django jsonfields ValidationError: [u\'Enter valid JSON\'] 从 1.7 升级到 1.9【英文标题】:Django jsonfields ValidationError: [u'Enter valid JSON'] upon upgrade from 1.7 to 1.9Django jsonfields ValidationError: [u'Enter valid JSON'] 从 1.7 升级到 1.9 【发布时间】:2016-10-23 11:43:50 【问题描述】:我正在将 django 从 1.7 升级到 1.9,方法是将通过 apt-get
安装在系统 (Debian 8) 中的软件包替换为通过 pip
安装的软件包。
所以,我从 pip 安装了 jsonfield
包,而不是 apt 的旧 python-django-jsonfield
并尝试运行单元测试。
我所有的 jsonfields,定义为 jsonfield.JSONField()
,测试失败并显示消息:
ValidationError: [u'Enter valid JSON']
之前一切正常。有什么想法,有什么改变?
【问题讨论】:
添加一些使用 JSONField 的代码 @e4c5 感谢您的关注。我解决了这个问题,并将我对 Django 中 jsonfields 的发现添加到问题中。 我认为您应该将其发布为答案。你当然可以接受你的回答。那么它就会对其他人有用。 【参考方案1】:在 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 jsonfields ValidationError: [u'Enter valid JSON'] 从 1.7 升级到 1.9的主要内容,如果未能解决你的问题,请参考以下文章