将用户友好的 json 编辑器添加到 django admin

Posted

技术标签:

【中文标题】将用户友好的 json 编辑器添加到 django admin【英文标题】:add user friendly json editor to django admin 【发布时间】:2019-01-09 00:37:13 【问题描述】:

我有一个 django 应用程序,也使用 rest_framework,以及一个模型 Product,其字段类型为 JSONField。所以数据在Postgres 中存储为JSON,现在我想为管理员提供一个很好的用户友好方式,告诉他如何更改json 字段(names/keys and values)。是否有扩展或有更快的方法来做到这一点。

这里是数据库中的列定义。 my_column = JSONField(default="editorial1": "text 1", "editorial_2": "text2", "editorial_3": "text")

管理员可以编辑键和值

管理员不应该对 JSON 有任何了解,也不应该输入/编辑任何 json 格式字段

【问题讨论】:

【参考方案1】:

你可以使用prettyjsonPrettyJSONWidget

class ProductModelForm(forms.ModelForm):
    class Meta:
        fields = (
            ...
            'my_column',
        )
        widgets = 
            'my_column': PrettyJSONWidget(),
        

【讨论】:

pip install django-prettyjson(我使用的是 0.3.0,但可能会有更新的版本) 感谢信息。这就要求使用者必须对 json 有一定的了解。我们的用户对此一无所知。因此我会说github.com/kevinmickey/django-prettyjson 似乎更好【参考方案2】:

我最终使用了django-admin-json-editor。不是世界上最好的东西,但它确实有用

https://github.com/abogushov/django-admin-json-editor

【讨论】:

【参考方案3】:

你可以试试https://github.com/jrief/django-entangled

与上面提到的编辑器相比,它不会替换用于呈现 JSON 的小部件,但允许覆盖 ModelForm,否则由 Django 的 ModelAdmin 生成。

【讨论】:

以上是关于将用户友好的 json 编辑器添加到 django admin的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用多处理时将数据添加到 json 文件?

使用 Django 表单编辑图像字段

Django:将字段添加到模型表单集

django 用户管理--编辑用户 and 修改用户密码

Django CMS 用户无权添加插件

将“另存为新”按钮添加到 Django 外部对象编辑弹出窗口