首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 django admin 中将 json 文本显示为友好列表

在 Django Admin 中将 JSON 文本显示为友好列表,可以通过自定义字段的方式来实现。

首先,需要创建一个自定义字段类,继承自 django.contrib.admin.ModelAdmin。在该类中,重写 get_list_display 方法,将 JSON 字段添加到列表显示中。然后,重写 get_queryset 方法,将 JSON 字段转换为友好的列表显示格式。

下面是一个示例的代码:

代码语言:python
复制
from django.contrib import admin
import json

class JSONFieldListDisplay(admin.ModelAdmin):
    list_display = ('id', 'json_field_to_list')

    def json_field_to_list(self, obj):
        json_data = json.loads(obj.json_field)
        return json_data

    json_field_to_list.short_description = 'JSON Field'

    def get_queryset(self, request):
        queryset = super().get_queryset(request)
        queryset = queryset.annotate(json_field_to_list=self.json_field_to_list)
        return queryset

admin.site.register(YourModel, JSONFieldListDisplay)

上述代码中,YourModel 是你的模型类名,json_field 是你的 JSON 字段名。

这样,在 Django Admin 中,你就可以将 JSON 文本显示为友好的列表了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

RESTful API

状态码的完全列表参见这里。 8、错误处理(Error handling) 如果状态码是4xx,就应该向用户返回出错信息。一般来说,返回的信息中将error作为键名,出错信息作为键值即可。...实现API 方式一:FBV模式: from django.contrib import admin from django.conf.urls import url, include from app01...许多功能都需要我们自己开发,这时候djangorestframework就给我们提供了方便,直接基于它来返回数据,总之原理都是一样的,就是给一个接口也就是url,让前端的人去请求这个url去获取数据,页面上显示出来...rest_framework.exceptions import APIException from app01 import models from rest_framework.response import Response #友好显示返回结果...如果不想用默认的模板显示,只想显示json数据,则 from rest_framework.renderers import JSONRenderer class HostView(APIView):

1.6K20

Django 3.1 官网学习路线

mysite / urls.py 中, django.urls.include 添加一个导入,并在 urlpatterns 列表中插入一个 include(),这样您就可以: from django.contrib...path() argument: kwargs 可以字典中将任意关键字参数传递给目标视图。本教程中,我们不会使用 Django 的此功能。...我们的投票应用程序中,我们将有以下四个视图: 问题“索引”页面-显示最近的几个问题。 问题“细节”页面-显示一个问题文本,没有结果,但有一个表格来投票。 问题“结果”页面-显示特定问题的结果。...由于 app_directory 模板加载器的工作方式如上所述,您可以 Django 中将这个模板引用为 poll /index.html。...Raising a 404 error 现在,让我们处理问题细节视图——显示给定投票的问题文本的页面。

8.1K10

Django 后台自定义表单控件

django 中我们可以 admin.py 中添加 ModelAdmin,这样就能很方便地在后台进行增删改查的操作。...然而,对应 Model 生成的表单,并不友好,我们希望能像前端开发一样做出各种类型的控件,这就得对其后台的表单进行自定义。...其实 django 已经我们提供了一些可用的表单控件,比如:多选框、单选按钮等,下面就以单选按钮例: # forms.py from django import forms from .models...,在里面字段添加控件,widget 用来指定控件的类型,choices 指定可选列表,再在 MyAdmin 中的 form 指定为自定义表单即可。... forms.py 中将自定义的控件 AceWidget 引入: #coding: utf-8 from django import forms from .models import Code from

1.8K20

django入门:视图及模版

创建 django 视图 普通视图 1.首先在应用文件夹下创建 urls.py 文件,用来配置视图的 url,然后我们需要在项目下的 urls.py 文件中将该应用的 urls 配置进去 # 项目下...urlpatterns = [ url(r'^admin/', admin.site.urls), # include 作用: django 匹配 url 时候匹配完 blog/...def index(request): return HttpResponse("Hello django") 3.应用下的 urls.py 文件中将视图文件配置进去 from django.conf.urls...常用内置模版过滤器 模板过滤器是变量被显示前修改它的值的一个简单方法,以 "|" 拼接,过滤器的参数跟随冒号之后并且总是以双引号包含,例如 {{ value|add:"2" }} 返回值 value...addslashes,增加反斜杠,处理 Javascript 文本非常有用 truncatewords:"n",显示变量前 n 个字符 pluralize:"y, ies",单词的复数形式,可以通过参数设置复数形式

1K20

Django Admin后台管理

# 操作选项底部是否显示 actions_on_bottom = True # 自定义列表显示列表项 list_display = ['id', 'name',...actions_on_top = True # 操作选项底部是否显示 actions_on_bottom = True # 自定义列表显示列表项 list_display...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式的文字,如编辑对商品的详细信息描述,就需要使用富文本编辑器。这里以tinymceDjango Admin后台中如何使用富文本编辑器。...', 'django.contrib.messages', 'django.contrib.staticfiles', 'tinymce', # 富文本编辑器 ) 项目的settings.py.../', include('tinymce.urls')), # 富文本编辑器 随后就可在模型类中使用该字段,应用的models.py中添加如下内容 from django.db import models

2.7K10

利用Django徒手写个静态页面生成工具

去年七月选择微信公众号做为平台开始了又一次的技术分享,庆幸一直坚持到现在,但随着文章发表的越来越多,发现公众号对于PC端很不友好,文章列表没有PC端入口,查看分享很不方便,所以就利用github pages...editor.set({{ data|safe }}); JSON Editor 可以用来查看、编辑、格式化和验证JSON,支持多种模式,例如tree、code、text,当...tree模式时显示树状结构,当text时显示文本,我们这里采用了code模式有行号和颜色,看起来更美观 safe django从view向template传递HTML数据的时候,为了防止html中包含恶意攻击的代码...然后就可以使用以下程序实现自动上传更新到github了,也就是跑本文所讲的这个生成工具之前需要先做好以上三步 from git import Repo from django.conf import...默认的admin页面,但还想使用django提供的auth系统实现登陆登出的话,可以采用下边这种方式 from django.urls import path from django.contrib.auth.views

94630

django之文件上传下载等相关

',{'uf':uf})#只有刚显示时才起作用 配置urls.py: from django.conf.urls import url from django.contrib import admin...那就是文本框 {{ form.qq.errors.as_text }}表示如果表单字段验证失败的话,这个代表错误信息 {{ form.qq.help_text }}如果你form里定义了这个字段的帮助信息的话...,就会在这里显示Django处理文件上传File Uploads HttpRequest.FILES 表单上传的文件对象存储类字典对象request.FILES中,表单格式需multipart...,或者要符合某种模式的输入才有效,这些处理起来非常方便,不用自己再单独写代码去验证表单的数据正确性,所以开发中比较常用,Form提供了很多表单字段,比如日期,文本类型等,如果你熟悉基本的html,学起来会非常容易上手...app下admin.py中将需要上面创建的模型进行添加。

3.1K30

Django Admin 后台发布文章

注意:命令行输入密码时可能不会显示输入的字符,不要以为键盘坏了,照正常的方式输入密码即可。...支持 Markdown 语法部分中将介绍如何在文章中插入图片的方法。...访问 http://127.0.0.1:8000/ 首页,你就可以看到你添加的文章列表了,下面是我所在环境的效果图: image.png 定制 Admin 后台 admin post 列表页面,我们只看到了文章的标题...,但是我们希望它显示更加详细的信息,这需要我们来定制 Admin 了, admin.py 添加如下代码: blog/admin.py from django.contrib import admin...刷新 Admin Post 列表页面,可以看到显示的效果好多了。 image.png 总结 本章节的代码位于:Step7: publish posts using django admin

2K60

django 1.8 官方文档翻译:7-2 管理操作

在这些例子中,Django管理后台可以让你实现和注册“操作” —— 仅仅只是一个以已选中对象集合为参数的回调函数。 Django自带的管理页面中都能看到这样的例子。...也就是说,异常处理和使用django.contrib.admin.ModelAdmin.message_user()可以响应中展示用户友好的问题描述。...." % message_bit) 这会使动作与后台成功执行动作后做的事情相匹配: 提供中间页面的操作 通常,执行操作之后,用户会简单地通过重定向返回到之前的修改列表页面中。...例如,你可能编写了一个简单的导出函数,它使用了Django的序列化函数来将一些选中的对象转换为JSON: from django.http import HttpResponse from django.core...然而,如果你需要为特定的模型重新启动全局禁用的对象,把它显式放在ModelAdmin.actions 列表中就可以了: # Globally disable delete selected admin.site.disable_action

69520

Django后台管理之Admin actions自定义

下面以一个新闻应用的文章模型例,介绍一个批量更新的自定义actions,它将选择的文章由“草稿”状态更新“发布”状态: 首先是模型的代码: from django.db import models...处理错误: 这其中,如果你能够预知自定义的操作中可能产生的错误,请处理该错误,并通过django.contrib.admin.ModelAdmin.message_user()以友好的方式给予用户提示信息...四、跳转到中间页面 默认情况下,执行完actions后,浏览器会返回先前的修改列表页面。...例如下面是一个利用Django内置的序列化函数将一个对象保存为json格式的范例: from django.http import HttpResponse from django.core import...指定模型中禁用所有actions:设置ModelAdmin.actionsNone。(这会连带全局actions一起禁用了。)

2.1K50

Django admin管理工具的使用、定制及源码解析

up.empty_value_display = "指定列数据空时,默认显示" from django.contrib import admin # Register your models...BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示列表中的字段(id字段是Django模型的默认主键) list_display...8.修改app的显示名称 DajngoAdmin后台默认显示的应用的名称为创建app时的名称。...9.自定义列表字段 DataPaperStore模型中有 end_date 字段,如果当前时间大于end_date 是我们想显示一个“已过期”,但admin列表显示不能直接用该字段,也显示不出来。...最终生成的结果就是可以选择所有的省,也可以选择所有的市,这并不合理,正确的应该是选择某个省的时候市的下拉列表里只有该省的城市。 而,django原生并不能做到这么智能。

4K40

django框架菜鸟教程_django框架菜鸟教程

DEBUG 调试模式,创建工程后初始值True,即默认工作调试模式下。 作用: 修改代码文件,程序自动重启 Django程序出现异常时,向前端显示详细的错误追踪信息....路由解析顺序 Django接收到一个请求时,从主路由文件中的urlpatterns列表中以由上至下的顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含的urls中的urlpatterns...列表中添加此类 4、注册模型类 # booktest/admin.py 文件中编写代码: from django.contrib import admin from booktest.models import...中显示的标题 # admin.py中: class BookInfoAdmin(admin.ModelAdmin): ......模型类中封装方法,访问关联对象的成员 右侧栏过滤器:list_filter = [] 搜索框:search_fields = [] 2、调整编辑页展示 显示字段:fields = [] 分组显示

3K40

Django 路由

django.contrib import admin from django.urls import path,re_path,include from app01 import urls as app01...中将地址模拟成.html结尾的样子,看上去像似一个静态文件,目的是为了增加搜索引擎收藏我们网站的概率以及SEO查询几率; 本地虚拟环境 时间开发过程中,我们会给不同的项目配备不同的环境,项目用到什么就装什么...year>///', views.article_detail, name='aaa'), ] JsonResponse 前后端数据交互,数据格式要求json...=False取消中文自动转码(Unicode),使中文正常显示 JsonResponse模块 JsonResponse底层还是json def func(request): dic_json...,json_dumps_params={'ensure_ascii':False}) ps:ensure_ascii=False取消中文自动转码(Unicode),使中文正常显示,JsonResponse

60020

Django】 Python Web 框架基础

Django项目 创建项目的指令 $ django-admin startproject 项目名称 如: $ django-admin startproject mysite1 运行 $ cd mysite1...=None) 参数: route: 字符串类型,匹配的请求路径 views: 指定路径所对应的视图处理函数的名称 name: 地址起别名,模板中地址反向解析时使用 path转换器 思考:建立如上一百个网页该怎么办...当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。 HTTP状态码的英文HTTP Status Code。...浏览器会根据这个属性,来显示数据。如果是text/html,那么就会解析这个字符串,如果text/plain,那么就会显示一个纯文本。...) 'multipart/form-data'(文件提交) 'application/json'(json传输) 'application/xml'(xml文件) 注: 关键字MIME(Multipurpose

2.1K20

Django开发快速入门

我们总是底部添加新应用,因为Django会按顺序读取它们,并且我们希望内置的核心Django应用(例如admin和auth)加载我们的应用之前已经被加载。...Admin 我们可以开始通过内置的Django应用将数据输入到我们的新模型中。 但是我们必须首先做两件事: 创建一个超级用户帐户并更新admin.py,以便显示books应用程序。...请注意,出于安全原因,输入密码时屏幕上不会显示文本。 现在更新我们的图书应用的admin.py文件。...我们已经视图中将其名称指定为book_list.html。...因此,为了遍历每本书,我们{% for book in object_list %}。 然后显示模型中的每个字段。 网页 现在,我们可以启动本地Django服务器并查看我们的网页。

2.3K41
领券