Django-JSONEditor is an online structured JSON input widget for Django appropriate for various JSONField's provided for Django.
Code of the javascript JSONEditor online editor has been got from the http://jsoneditoronline.org/ but slightly changed to avoid some issues.
See the latest versions of the javascript online JSON Editor here: https://github.com/josdejong/jsoneditor
Sample views:
Don't mismatch this repo with https://github.com/skyhood/django-jsoneditor
pip install "git+git://github.com/nnseva/django-jsoneditor.git"
Note that you should use one of original JSONField packages to provide the JSONField itself.
You should append jsoneditor
into the INSTALLED_APPS
of your settings.py
file:
INSTALLED_APPS = (
...
'jsoneditor',
...
)
You can use CDN repositories to get JSONEditor javascript code, or host it yourself, instead of the packaged one using the following two settings in your settings.py
file:
JSON_EDITOR_JS = 'whatever-your-want.js'
JSON_EDITOR_CSS = 'whatever-your-want.css'
Just look to the http://cdnjs.com/libraries/jsoneditor and select the latest one, like:
JSON_EDITOR_JS = 'https://cdnjs.cloudflare.com/ajax/libs/jsoneditor/4.2.1/jsoneditor.js'
JSON_EDITOR_CSS = 'https://cdnjs.cloudflare.com/ajax/libs/jsoneditor/4.2.1/jsoneditor.css'
You can use the JSONEditor widget for fields in selected Admin classes like:
admin.py:
from json_field import JSONField
from jsoneditor.forms import JSONEditor
class MyAdmin(admin.ModelAdmin):
formfield_overrides = {
JSONField:{ 'widget':JSONEditor },
}
Or use the original JSONField implementation fixed by the package.
Right now there are two fixed implementations:
jsoneditor.fields.django_json_field.JSONField
replaces a JSONField from https://github.com/derek-schaefer/django-json-field (NOTE the package is not compatible with django v.1.9)jsoneditor.fields.django_jsonfield.JSONField
replaces a JSONField from https://github.com/bradjasper/django-jsonfield
Use the fixed implementation instead of the original one
models.py:
from django.db import models
# from json_field import JSONField replaced by:
from jsoneditor.fields.django_json_field import JSONField
# Create your models here.
class TestModel(models.Model):
my_field = JSONField()
I'm collecting small bounties to integrate django-jsoneditor with different JSONField implementations, see below: