Django admin显示json字段方法详解

 更新时间:2023年06月21日 14:50:12   作者:alue  
这篇文章主要为大家介绍了Django admin显示json字段方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

默认的 json 显示

如图所示,如果 Django 模型中含有 json 字段, 在 admin 后台默认的显示非常混乱,不利于数据维护。 那么有什么好的方式呢?

这里给出一个不依赖于第三方库的处理方法。思路是,用自定义 JSON widget 代替 admin 默认的 text_input.

定义 widget 类如下

import json  
from django.contrib import admin  
from django.db.models import JSONField  
from django.forms import widgets  
class PrettyJSONWidget(widgets.Textarea):  
    def format_value(self, value):  
        try:  
            value = json.dumps(json.loads(value), indent=2, sort_keys=True)  
            row_lengths = [len(r) for r in value.split('\n')]  
            self.attrs['rows'] = min(max(len(row_lengths) + 2, 10), 30)  
            self.attrs['cols'] = min(max(max(row_lengths) + 2, 40), 120)  
            return value  
        except Exception as e:  
            return super(PrettyJSONWidget, self).format_value(value)

使用 widget 的方式:我们继承 admin.ModelAdmin,并且覆盖 JSONField 的 widget:

class JsonAdmin(admin.ModelAdmin):  
    formfield_overrides = {  
        JSONField: {'widget': PrettyJSONWidget}  
    }
admin.site.register(MyModel, JsonAdmin)

优化之后的 json 显示

配置后,json 字段的显示

可以看出, 此时的 json 字段更加利于阅读和修改。

以上就是Django admin显示json字段方法详解的详细内容,更多关于Django admin显示json的资料请关注脚本之家其它相关文章!

相关文章

  • 如何使用Python处理HDF格式数据及可视化问题

    如何使用Python处理HDF格式数据及可视化问题

    这篇文章主要介绍了如何使用Python处理HDF格式数据及可视化问题,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python安全传参给C函数的4种类型转换方法详解

    Python安全传参给C函数的4种类型转换方法详解

    这篇文章主要来带大家掌握Python调用C函数的安全传参技巧,被将详解C语言Python类型转换的4种核心方法,涵盖字符串、数值与指针转换场景,确保数据安全高效交互,感兴趣的小伙伴可以了解下
    2026-01-01
  • 横向对比分析Python解析XML的四种方式

    横向对比分析Python解析XML的四种方式

    这篇文章主要以横向对比方式分析Python解析XML的四种方式,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Python自定义迭代器的实现方法

    Python自定义迭代器的实现方法

    自定义迭代器的核心是严格遵守 Python 迭代器协议,只要一个类实现了__iter__()和__next__()这两个特殊方法,它的实例就是一个合法的迭代器,本文给大家介绍了Python自定义迭代器的实现方法,需要的朋友可以参考下
    2026-05-05
  • 使用Python和OpenCV实现实时文档扫描与矫正系统

    使用Python和OpenCV实现实时文档扫描与矫正系统

    在日常工作和学习中,我们经常需要将纸质文档数字化,手动拍摄文档照片常常会出现角度倾斜、透 视变形等问题,影响后续使用,本文将介绍如何使用Python和OpenCV构建一个实时文档扫描与矫正系统,能够通过摄像头自动检测文档边缘并进行透 视变换矫正,需要的朋友可以参考下
    2025-05-05
  • 基于python开发文件常见处理工具

    基于python开发文件常见处理工具

    这篇文章主要为大家详细介绍了如何使用python开发一个文件处理工具,包含文件读写,后缀获取,压缩和解压,文件夹遍历等操作,需要的可以了解下
    2025-06-06
  • python如何发送xml格式请求数据

    python如何发送xml格式请求数据

    这篇文章主要介绍了python如何发送xml格式请求数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • PyQt5 QLineEdit校验器限制输入实例代码

    PyQt5 QLineEdit校验器限制输入实例代码

    QLineEdit类是一个单行文本控件,可输入单行字符串,可以设置回显模式(Echomode)和掩码模式,下面这篇文章主要给大家介绍了关于PyQt5 QLineEdit校验器限制输入的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 新一代爬虫利器Python Playwright详解

    新一代爬虫利器Python Playwright详解

    这篇文章主要为大家介绍了新一代爬虫利器Playwright,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python如何实现多层级自动赋值字典

    python如何实现多层级自动赋值字典

    这篇文章主要介绍了python如何实现多层级自动赋值字典问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论