Django Used Defined Fields is a simple way to allow your users to add extra fields to your models, based on JSONField.
Standard pip install:
pip install django-user-defined-fields
from userdefinedfields.models import ExtraFieldsJSONField
class Example(models.Model):
extra_fields = ExtraFieldsJSONField()
Run tests in example directory with python manage.py test library
USERDEFINEDFIELDS_INPUT_CLASSES = 'd-none' # hide the textarea if you're using a frontend solution