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

相关文章

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.