https://github.com/arthurc0102/django-jsoneditor-widget
Django form widget form JSONField
https://github.com/arthurc0102/django-jsoneditor-widget
django json widget
Last synced: about 1 year ago
JSON representation
Django form widget form JSONField
- Host: GitHub
- URL: https://github.com/arthurc0102/django-jsoneditor-widget
- Owner: arthurc0102
- License: mit
- Created: 2018-08-16T02:43:19.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-01-03T13:36:14.000Z (over 5 years ago)
- Last Synced: 2025-05-25T02:19:26.041Z (about 1 year ago)
- Topics: django, json, widget
- Language: Python
- Size: 1.14 MB
- Stars: 2
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# django-jsoneditor-widget
> Django form widget form JSONField
## Demo
It look like this.

## Install
- Install: `pip install django-jsoneditor-widget`
- Settings:
```python
INSTALLED_APPS = [
# some apps ....
'jsoneditor',
# other apps ...
]
```
## Create model
```python
from django.db import models
from django.contrib.postgres.fields import JSONField
class Book(models.Model):
name = models.CharField(max_length=150)
information = JSONField()
def __str__(self):
return self.name
```
## Admin site settings
- Use ModelAdmin
```python
from django.contrib import admin
from jsoneditor.admin import JSONFieldModelAdmin
from .models import Book
admin.site.register(Product, JSONFieldModelAdmin)
```
- Use mixin
```python
from django.contrib import admin
from jsoneditor.admin import JSONFieldAdminMixin
from .models import Book
@admin.register(Book)
class BookModelAdmin(JSONFieldAdminMixin, admin.ModelAdmin):
pass
```
- Use custom widget to specify jsoneditor options
```python
from django.contrib import admin
from django.contrib.postgres.fields import JSONField
from jsoneditor.forms import JSONEditor
from .models import Book
class TextJSONEditor(JSONEditor):
jsoneditor_options = {
"mode": "text"
}
@admin.register(Book)
class BookModelAdmin(admin.ModelAdmin):
formfield_overrides = {
JSONField: {"widget": TextJSONEditor}
}
```