跳转到主要内容

用于Django的JSON Schema表单

项目描述

https://travis-ci.org/Aristotle-Metadata-Enterprises/django-jsonforms.svg?branch=master

django-jsonforms提供了json-editor(https://github.com/json-editor/json-editor)的Django集成。提供了一个表单字段,该字段渲染由json-editor创建的动态表单,加载提供的模式和选项以及任何初始表单数据。该字段可以像其他Django字段一样渲染,并在提交时验证提交的数据是否符合您的JSON模式。

安装

使用pip安装 pip install django-jsonforms

django_jsonforms 添加到您的 INSTALLED_APPS

确保您已将 APP_DIRS 设置为 True 在您的 TEMPLATES 设置中。更多关于模板设置的信息,请参阅: https://docs.django.ac.cn/en/2.0/ref/settings/#templates

需求

页面需要渲染表单时需要 jQuery

用法

该字段可以像任何其他Django表单字段一样使用,它具有模式和选项属性,可以是Python字典或指向静态文件的路径,如下所示

  • 模式参数是字段将使用的JSON模式

  • 选项参数传递给json-editor对象,这些选项在此处有描述: https://github.com/jdorn/json-editor#options(模式选项未使用)

  • 可选的ajax参数确定是否通过ajax在前端加载任何文件,或者在后端加载并将它们放入HTML参数(默认为true)

示例

from django.forms import ModelForm, Form
from django_jsonforms.forms import JSONSchemaField

class RegistrySettingsForm(Form):

    json = JSONSchemaField(
        schema = 'schema/schema.json',
        options = 'schema/options.json'
    )

在这个示例中,模式文件将位于“static/schema/schema.json”。您需要在创建文件后运行collectstatic

要从除STATIC_ROOT之外的其他目录加载文件,请参阅下面的JSONFORMS_SCHEMA_DIR设置

显示所有选项的示例

class RegistrySettingsForm(Form):

    json = JSONSchemaField(
        schema = 'schema/schema.json',
        options = {"theme": "bootstrap3"},
        ajax = false
    )

由于在这种情况下通常只有一个字段,所以还有一个名为json的单个JSONSchemaField表单可供使用

表单示例

from django_jsonforms.forms import JSONSchemaForm

form = JSONSchemaForm(schema=... , options=... , ajax=...)

注意

在渲染表单时,别忘了使用模板标签{{ form.media }}渲染表单媒体。这对于字段正确工作是必需的

字段提交时返回的数据是以Python字典的形式。根据使用的模型字段,可能需要在进行存储之前进行转换

设置

可以使用JSONFORMS_SCHEMA_DIR设置来指定从其中加载模式的文件目录。为了使表单能够正确工作,此目录需要提供静态文件

可以将JSONFORMS_SCHEMA_VALIDATE设置设置为False以禁用后端对提交的json的验证。如果绕过前端验证,这允许用户提交任何json。此设置仅在开发期间使用

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

django-jsonforms-1.1.2.tar.gz (10.2 kB 查看哈希)

上传时间

构建分布

django_jsonforms-1.1.2-py3-none-any.whl (11.1 kB 查看哈希)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面