深度定制django admin界面 |
您所在的位置:网站首页 › 如何更改app的名字和名字显示 › 深度定制django admin界面 |
定制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 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |