38. Django 2.1.7 Admin - 注册模型、自定义显示列表字段

2024-08-21 03:38

本文主要是介绍38. Django 2.1.7 Admin - 注册模型、自定义显示列表字段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文献

  • https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial07/

  • https://docs.djangoproject.com/zh-hans/2.1/topics/i18n/timezones/

  • https://docs.djangoproject.com/zh-hans/2.1/topics/i18n/translation/#how-to-create-language-files

Admin站点

内容发布的部分由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块。

使用Django的管理模块,需要按照如下步骤操作:

1.管理界面本地化 2.创建管理员 3.注册模型类 4.自定义管理页面

1.管理界面本地化

本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。

打开mysite/settings.py文件,找到语言编码、时区的设置项,将内容改为如下:

LANGUAGE_CODE = 'zh-hans' #使用中国语言
TIME_ZONE = 'Asia/Shanghai' #使用中国上海时间

2.创建管理员

创建管理员的命令如下,按提示输入用户名、邮箱、密码。

python3 manage.py createsuperuser

接下来启动服务器。

python3 manage.py runserver

打开浏览器,在地址栏中输入如下地址后回车。http://127.0.0.1:8000/admin/

输入前面创建的用户名、密码完成登录。

3.注册模型类

登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理中看到,并进行增删改查操作。

打开assetinfo/admin.py文件,编写如下代码:

from django.contrib import admin# Register your models here.
from .models import ServerInfo,MiddlewareInfo,ScriptInfoadmin.site.register(ServerInfo)
admin.site.register(MiddlewareInfo)
admin.site.register(ScriptInfo)

到浏览器中刷新页面,可以看到模型类的管理了。

点击类名称"ServerInfo"可以进入列表页,默认只有一列。

在列表页中点击"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。

在列表页中点击某行的第一列可以进入修改页。

按照提示进行内容的修改,修改成功后进入列表页。在修改页点击“删除”可以删除一项。

删除:在列表页勾选想要删除的复选框,可以删除多项。

4.自定义管理页面

在列表页只显示出了ServerInfo object,对象的其它属性并没有列出来,查看非常不方便。Django提供了自定义管理页面的功能,比如列表页要显示哪些值。

打开assetinfo/admin.py文件,自定义类,继承自admin.ModelAdmin类。

  • 属性list_display表示要显示哪些属性

class ServerInfoAdmin(admin.ModelAdmin):list_display = ['id', 'server_hostname', 'server_intranet_ip','server_internet_ip','server_shelves_date','update_time']
  • 修改模型类ServerInfo的注册代码如下

admin.site.register(ServerInfo, ServerInfoAdmin)
  • 刷新ServerInfo的列表页,所有属性都显示出来了

  • 最终assetinfo/admin.py文件代码如下

from django.contrib import admin
from .models import ServerInfo,MiddlewareInfo,ScriptInfoclass ServerInfoAdmin(admin.ModelAdmin):list_display = ['id', 'server_hostname', 'server_intranet_ip','server_internet_ip','server_shelves_date','update_time']admin.site.register(ServerInfo, ServerInfoAdmin)
admin.site.register(MiddlewareInfo)
admin.site.register(ScriptInfo)

5.使用修饰器注册模型类

上面注册模型类的方式如下:

admin.site.register(ServerInfo, ServerInfoAdmin)

除了这种方式,还可以使用修饰器,如下:

@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):pass

完整admin.py代码如下:

from django.contrib import admin
from .models import ServerInfo,MiddlewareInfo,ScriptInfo@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):list_display = ['id', 'server_hostname', 'server_intranet_ip','server_internet_ip','server_shelves_date','update_time']admin.site.register(MiddlewareInfo)
admin.site.register(ScriptInfo)

这篇关于38. Django 2.1.7 Admin - 注册模型、自定义显示列表字段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092020

相关文章

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

nacos服务无法注册到nacos服务中心问题及解决

《nacos服务无法注册到nacos服务中心问题及解决》本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tom... 目录简介依赖异常情况排查断点调试原因解决NacosRegisterOnWar结果总结简介1、程序在

Python列表去重的9种方法终极指南

《Python列表去重的9种方法终极指南》在Python开发中,列表去重是一个常见需求,尤其当需要保留元素原始顺序时,本文为大家详细介绍了Python列表去重的9种方法,感兴趣的小伙伴可以了解下... 目录第一章:python列表去重保持顺序方法概述使用字典去重(Python 3.7+)使用集合辅助遍历性能

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放