2016-06-21 11 views
3

Ich aktualisiere django von 1.7 auf 1.9 durch Ersetzen von Paketen, installiert im System (Debian 8) über apt-get mit installierten Paketen über pip.Django jsonfields ValidationError: [u 'gültiges JSON'] beim Upgrade von 1.7 auf 1.9

Also, ich habe jsonfield Paket von pip anstelle von apt guten alten python-django-jsonfield installiert und versucht, Unittests laufen. Alle

meine jsonfields, definiert als jsonfield.JSONField(), versagen die Tests mit der Meldung:

ValidationError: [u'Enter valid JSON'] 

Alles funktionierte vor gut. Irgendwelche Ideen, was hat sich geändert?

+0

ein bisschen Code hinzufügen, die JSONField – e4c5

+0

@ e4c5 Danke für Ihr Interesse verwendet. Ich löste das Problem und fügte meine Ergebnisse über Jsonfields in Django zu der Frage hinzu. –

+0

Ich denke, du solltest das als Antwort posten. Sie können natürlich Ihre Antwort akzeptieren. Dann wird es für andere nützlich sein. – e4c5

Antwort

5

Mit Django 1.7 habe ich jsonfield 0.9 verwendet, aber jetzt habe ich jsonfield 1 installiert und es gibt einen signifikanten Unterschied zwischen ihnen. Leider verwendet jsonfield 0.9simplejson (from django.utils import simplejson as json), die in Django 1.9 nicht verfügbar ist.

Da ich Django 1.9 sowieso benutze und es gibt eingebaute Unterstützung für JSONField in django.contrib.postgres.fields, wechselte ich darauf. Ich löste meine Probleme durch Zugabe von null=True, blank=True-JSONField Definition:

JSONField(null=True, blank=True)