If you ever needed to store a flexible dictionary of keys and values in your django models, you may have felt the need of giving your users a widget to easily manipulate the data by adding or removing rows, instead of having to edit the raw JSON.
This package solves exactly that problem: it offers a widget to manipulate a flat JSON object made of simple keys and values.
Tested on python >= 3.8 and Django 3.2, 4.1 and 4.2.
It should work also on previous versions of Django.
Install from pypi:
pip install django-flat-json-widget
Add flat_json_widget
to INSTALLED_APPS
:
INSTALLED_APPS = [
# other apps...
"flat_json_widget",
]
Then load the widget where you need it, for example, here's how to use it in the django admin site:
from django.contrib import admin
from django import forms
from .models import JsonDocument
from flat_json_widget.widgets import FlatJsonWidget
class JsonDocumentForm(forms.ModelForm):
class Meta:
widgets = {"content": FlatJsonWidget}
@admin.register(JsonDocument)
class JsonDocumentAdmin(admin.ModelAdmin):
list_display = ["name"]
form = JsonDocumentForm
Install your forked repo:
git clone git://github.com/<your_fork>/django-flat-json-widget
cd django-flat-json-widget/
python setup.py develop
Install development dependencies:
pip install -e .[test]
npm install -g jslint jshint stylelint
Create database:
cd tests/
./manage.py migrate
./manage.py createsuperuser
Launch development server:
./manage.py runserver 0.0.0.0:8000
You can access the admin interface at http://127.0.0.1:8000/admin/.
Run tests with:
./runtests.py
Run quality assurance tests with:
./run-qa-checks
Please refer to the OpenWISP contributing guidelines.
See CHANGES.
See LICENSE.