生成 Django 后台的字段以生成的 HTML 代码显示

发布于 2024-09-10 11:59:26 字数 2665 浏览 9 评论 0

不多说,上代码

文件: log/models.py

import json
from django.utils.html import format_html
from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class History(models.Model):
model = models.CharField('数据模型', max_length=50)
pkey = models.IntegerField('记录号')
json = models.TextField('JSON 数据')
log_time = models.DateTimeField('记录时间', auto_now_add=True)

class Meta:
verbose_name_plural = verbose_name = '历史记录'

def __str__(self):
return '%s(%s)' % (self.model, self.pk)

def natural_json(self):
"""in template file, use <pre>{{ object.natural_json }}</pre> to show natural json data. """
return format_html('<pre>{}</pre>', json.dumps(json.loads(self.json), indent=4,
ensure_ascii=False, sort_keys=True))
natural_json.short_description = 'JSON 格式文本'
natural_json.allow_tags = True

natural_json 是虚拟出来的字段,显示这个字段时,显示的是经过转换成 html 代码的代码,这里是用 <pre> 原样显示一个格式后的 json 文本。

文件: log/admin.py

from django.contrib import admin
from .models import *

# Register your models here.


@admin.register(History)
class HistoryAdmin(admin.ModelAdmin):
list_display = ('model', 'pkey', 'json', 'log_time')
fields = ('model', 'pkey', 'natural_json', 'log_time')
readonly_fields = ('model', 'pkey', 'natural_json', 'log_time')

进到编辑页面 natural_json 字段显示出来的效果:

[
{
"fields": {
"bar_code": "11100011",
"brand": 1,
"card_no": "134100000012",
"cpu": "1G",
"display_card": "Nv5700",
"hard_disk": "500G",
"ip": "10.142.179.238",
"mac": "1234.1234.1234",
"memory": "4G",
"model": "MT8400",
"modified_time": "2016-12-20T15:42:18.430Z",
"modifier": 1,
"net_range": 1,
"position": "1705",
"production_date": "2012-12-20",
"remark": "",
"sn": "11100011",
"source": 1,
"staff": 96,
"status": 1,
"type": 111,
"user": "张三/信息公司"
},
"model": "device.pcdevice",
"pk": 2
}
]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

自由如风

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文