Куски JSON Schema легко используются с внешними библиотеками JavaScript, такими как Angular, React и Alpaca, для создания HTML-форм с проверкой.Это также должно работать с решением Python django-jsonschema-form или django-schemulator , но я новичок в Django и у меня много проблем с его разработкой ..
Вот скриншот из видео AlpacaJS , в котором легко сообщается, чего он должен достичь:
У меня естьЯ провел некоторое тестирование с двумя вышеупомянутыми библиотеками, и первая, кажется, гораздо лучше поддерживается и менее глючная, единственная из двух в PyPI.
Мое дерево каталогов, созданное Django 1.11.4, выглядит следующим образом:
.
├── db.sqlite3
├── jschemaforms
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
├── myproject
│ ├── __init__.py
│ ├── settings.py
│ ├── templates
│ │ ├── base.html
│ │ └── includes
│ ├── urls.py
│ └── wsgi.py
└── README.md
В документах для django-jsonschema-form указывается класс:
# Overriding widgets for all instances of JSONField on PageAdmin form
class PageAdmin(admin.ModelAdmin):
formfield_overrides = {
JSONField: {'widget': JSONSchemaWidget(schema)}
}
Где в дереве каталогов должен находиться такой класс?
schema
это кусок json, который вы кормите для определения своей формы
Я посмотрел наразличные ответы в этом вопросе SO, чтобы попытаться решить его:
Django Admin - Переопределение виджета пользовательского поля формы
Кажется, что forms.py иобъекта ModelAdmin достаточно для реализации этого, но я не уверен, где в дереве должен существовать объект ModelAdmin.
Как этого можно достичь с помощью Django?
- рендерингформа из jsonschema
- , проверяющая на стороне клиента, что пользователь помещает в форму по отношению к jsonschema
- , получая данные из запроса POST формы, когда пользователь нажимает кнопку "отправить" как json
Я не уверен, что эти два лibraries - это ответ ..