深度定制django admin界面

您所在的位置:网站首页 如何更改app的名字和名字显示 深度定制django admin界面

深度定制django admin界面

2024-07-15 17:11:01| 来源: 网络整理| 查看: 265

定制django admin界面 1.修改admin界面中的名字 1.1 修改模型名字

在models.py的模型类中中添加一个Meta内部类,设置 verbose_name和verbose_name_plural属性。

class Courier(models.Model): def __str__(self): return self.courier_id class Meta: verbose_name = '配送人员' verbose_name_plural = '配送人员' # 设置复数的显示 1.2 修改admin站点标题和名字

在任何一个应用的admin.py中添加

admin.site.site_header = '管理' admin.site.site_title = '校园管理' admin.site.index_title = '校园管理'

即可定义管理站点左上角的名字

2.更换app在admin中名字

修改apps.py:

from django.apps import AppConfig VERBOSE_APP_NAME = '学习资源' class LearningSourceConfig(AppConfig): name = 'learningsource' verbose_name = VERBOSE_APP_NAME 3.中文设置

在settings.py中设置

LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' 4.定制列表页 4.1 注册模型管理器

在应用的admin.py中添加相应模型的管理类,例如有一个模型是Mymodel,增加一个管理器

class MymodelAdmin(admin.ModelAdmin): ......

在admin.py中注册并将模型和模型管理器绑定。

#在admin中注册绑定模型和模型管理器 admin.site.register(Mymodel, MymodelAdmin)

或者使用装饰器

@admin.register(Mymodel) class MymodelAdmin(admin.ModelAdmin): ...... 4.2 定制模型列表 class MymodelAdmin(admin.ModelAdmin): #列表中显示的字段(表头) list_display = ('Field1', 'Field2', 'Field3') #设置排序字段,负号表示降序排序 ordering = ('-created_time',) #设置点击哪些字段可以点击进入编辑界面,默认为id字段 list_display_links = ('id', 'title') #定制操作选项 #操作选项位置 #列表顶部,设置为False不在顶部显示,默认为True。 actions_on_top=True #列表底部,设置为False不在底部显示,默认为False。 actions_on_bottom=False #搜索框,是一个列表,列表中是作为搜索依据的字段 search_fields=['Field1', 'Field2'] # 设置详细页面中的只读字段,此时不能在详细页面进行更改。 readonly_fields = ('goods_order_id', 'buyer_id', 'goods_id', 'pub_date') # 在详细页面中以单选按钮显示 radio_fields = {"goods_order_status": admin.HORIZONTAL}#或者admin.VERTICAL # 设置详情页面的字段顺序以及显示的字段 fields = ('goods_order_id', 'price', 'count') #设置在详情页同一行显示的字段 #'goods_order_id', 'price'将在同一行显示 fields = (('goods_order_id', 'price'), 'count') # 分页显示 list_per_page = 20 # 分页控件,使用django默认控件 paginator = Paginator 4.3 定制字段颜色

在models.py中添加

class Mymodel(models.Model): def colored_status(self): color_code = "" if self.status == 'completed': color_code = 'green' colored_status = "已完成" if self.status == 'canceled': color_code = 'red' colored_status = "已取消" if self.status == 'processing': color_code = "orange" colored_status = "处理中" return format_html( '{}', color_code, colored_status, ) # 让有颜色的字段在排序时遵循原来的字段 colored_status.admin_order_field = 'status' # 给有颜色的字段取一个别名 colored_status.short_description = '订单状态'

在相应的admin.py的管理器的list_display中添加:

list_display = (....,'colored_status',...) 4.4 数据表格过长内容省略显示

有时数据表中的文本过长,造成界面很不美观,需要省略显示,方法:在models.py中添加

def shortcut_intro(self): if len(str(self.intro)) > 10: return self.intro[:10] + "..." else: return self.intro # 设置截断的intro在排序时遵循原来的字段 shortcut_intro.admin_order_field = 'intro' # 给截断的intro设置别名 shortcut_intro.short_description = "简介"

这样在简介文本大于10的时候就会省略显示

在这里插入图片描述

注意:使用这种方式原来字段设置的别名将无效。

4.5 禁用某个操作

在admin.py中添加

class Mymodel(models.Model): # 禁用添加操作 def has_add_permission(self, request): return False # 禁用更改操作 def has_change_permission(self, request): return False # 禁用删除操作 def has_delete_permission(self, request): return False 4.6 填充当前用户

models.py中字段

class Mymodel(models.Model): creator_name = models.CharField("创建者", max_length=50)

在admin.py中添加

# 保存创建者名称 def save_model(self, request, obj, form, change): if not change: obj.creator_name = request.user.get_username() obj.save()#必须加,否则不会保存 3.使用bootstrap-admin美化界面

首先安装第三方安装包:

pip install bootstrap-admin

在项目的settings.py的INSTALLED_APPS中添加:

'bootstrap_admin',

保存后刷新admin界面即可。接下来修改logo和站点名称。首先修改主界面logo图标,在python安装目录下按照下述目录进行寻找:Lib\site-packages\bootstrap_admin\static\bootstrap_admin\img,该img文件夹中的logo-140x60.png即为后台管理系统主界面logo,将其替换即可。效果如下:

在这里插入图片描述

4.使用django-simpleui美化界面

版本

simpleui3.1

安装

安装django-simpleui:

pip install django-simpleui

在项目的settings.py的INSTALLED_APPS中添加:

INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', .... ] 隐藏simpleui主页信息

隐藏前

在这里插入图片描述

在setting.py中添加

SIMPLEUI_HOME_INFO = False

即可。

隐藏后:

在这里插入图片描述

修改默认图标

在settings.py中添加如下配置:

字段说明name模块名字,请注意不是models.py中model的命名,而是菜单栏上显示的文本,因为model是可以重复的,会导致无法区分icon图标,可以参考fontawesome的图标,只需要将完整的class名填入即可。

示例:

SIMPLEUI_ICON = { '商品订单': 'fab fa-apple', } 修改logo

在settings.py中添加

SIMPLEUI_LOGO = '图片URL'

如果需要使用本地图片,需要在Lib/site-packages/simpleui/static/admin/simpleui-x/img中把原来的logo.png替换掉(图片名称不要改变)。

设置默认主题

在settings.py中添加:

SIMPLEUI_DEFAULT_THEME = 'admin.lte.css'

可选值见官网

https://gitee.com/tompeppa/simpleui/blob/master/QUICK.md#%E9%BB%98%E8%AE%A4%E4%B8%BB%E9%A2%98



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭