An alternative widget that makes it easy to edit the new Django's field JSONField (PostgreSQL specific model fields)
Install django-json-widget:
pip install django-json-widget
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
'django_json_widget',
...
)
Add the widget in your admin.py:
from django.contrib import admin
from django.contrib.postgres import fields
from django_json_widget.widgets import JSONEditorWidget
from .models import YourModel
@admin.register(YourModel)
class YourModelAdmin(admin.ModelAdmin):
formfield_overrides = {
fields.JSONField: {'widget': JSONEditorWidget},
}
You can also add the widget in your forms.py and choose the default mode:
from django import forms
from django_json_widget.widgets import JSONEditorWidget
from .models import YourModel
class YourForm(forms.ModelForm):
class Meta:
model = YourModel
fields = ('jsonfield',)
widgets = {
# choose one mode from ['text', 'code', 'tree', 'form', 'view']
'jsonfield': JSONEditorWidget(mode='code')
}
Before:
After:
Tools used in rendering this package: