2016-06-21 3 views
3

Я обновляю django с 1.7 до 1.9 с помощью замены пакетов, установленных в системе (Debian 8), через apt-get с пакетами, установленными через pip.Django jsonfields ValidationError: [u'Enter valid JSON '] при обновлении с 1.7 до 1.9

Итак, я установил jsonfield пакет от pip вместо старого старого python-django-jsonfield и попытался запустить unittests.

Все мои jsonfields, определяемые как jsonfield.JSONField(), провалить испытания с сообщением:

ValidationError: [u'Enter valid JSON'] 

Все работало отлично прежде. Любые идеи, что изменилось?

+0

добавить немного кода, который использует JSONField – e4c5

+0

@ e4c5 Спасибо за ваш интерес. Я решил проблему и добавил свои выводы о jsonfields в Django к вопросу. –

+0

Я думаю, вы должны опубликовать это как ответ. Вы можете, конечно, принять свой ответ. Тогда это будет полезно для других. – e4c5

ответ

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) 
Смежные вопросы