Skip to content

Django JSONEditor input widget to provide javascript online JSON Editor

Notifications You must be signed in to change notification settings

alezkv/django-jsoneditor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Django-JSONEditor

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:

json editor

Don't mismatch this repo with https://github.com/skyhood/django-jsoneditor

Installation

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.

Configuration

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'

Use

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:

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()

Collecting bounties

I'm collecting small bounties to integrate django-jsoneditor with different JSONField implementations, see below:

Bountysource Bountysource Bountysource Bountysource Bountysource Bountysource Bountysource Bountysource Bountysource Bountysource Bountysource

Bountysource - Django Suit integration

Bountysource - Django Grappelli integration

About

Django JSONEditor input widget to provide javascript online JSON Editor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 88.0%
  • CSS 6.2%
  • Python 5.8%