Django搭建个人博客平台4---后台admin优化simpleui和导入导出
Posted 大聪明Smart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django搭建个人博客平台4---后台admin优化simpleui和导入导出相关的知识,希望对你有一定的参考价值。
文章目录
Django搭建个人博客平台4—后台admin优化、simpleui和导入导出
Admin优化
像展示和搜索按钮直接在ModelAdmin中修改即可。
展示字段设置
我要对UserInfo表多展示几个字段,不是只展示用户名。
首先,自定义一个管理类,继承admin.ModelAdmin,然后更改它的list_display即可。最后不要忘记注册时添加你的管理类。
from django.contrib import admin
class UserManager(admin.ModelAdmin):
list_display = ['username', 'email', 'is_active', 'last_login']
admin.site.register(models.UserInfo, UserManager)
添加过滤器
使用admin注册装饰器实现,展示字段当是外键时,我们用函数处理。
def category(obj):
return obj.category.name
@admin.register(models.Article)
class ArticleAdmin(admin.ModelAdmin):
list_display = ['title', category, 'update_time'] # 可以是一个函数
list_filter = ['title'] # 过滤器
form = ArticleForm
添加点击链接
class LinkManager(admin.ModelAdmin):
list_display = ['title', 'desc']
list_display_links = ['title', 'desc'] # 给那个字段加url
admin.site.register(models.Links, LinkManager)
可编辑字段
注意:不能给links中的字段添加editable
class LinkManager(admin.ModelAdmin):
list_display = ['title', 'desc', 'is_disply']
list_editable = ['is_disply'] # 可编辑的字段
list_display_links = ['title', 'desc'] # 给那个字段加url
simpleui
基本使用
它的admin太丑了,不好看怎么办。用一个插件可以快速优化。
-
安装simpleui
pip install django-simpleui==2021.4.3
-
app中注册
一定要写在第一个,之后自己创建的应用也要在这里注册。
# settings.py INSTALLED_APPS = [ 'simpleui', # 一定要写在第一个 'import_export', 'smart_chart.echart', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django.contrib.sitemaps', 'blog', 'mdeditor', ]
这样就完成了,去后台查看已经变样了,更加的美观。
进阶
重写simple-ui的模板html文件
我想去掉右边的simple-ui的版本和链接展示那块,需要重写它的home页面
首先,比对simple-ui的目录结构,我也在我的项目下的template文件夹下建立相同的目录结构
也就是在我的项目下的templates文件夹下建立一个admin文件夹,然后像重写哪个html,就建立一个同名html文件即可。
我看到主页就是home.html,里边预留的钩子不多,所以直接把他全部复制过来,删掉不想要的即可。
另一种方法就是直接在配置文件中修改:
# simpleui配置
SIMPLEUI_HOME_INFO = False
simpleui都可通过配置项修改,前边的重写是一种思想,包括重写django-admin自带的一些模板文件也是同样的操作步骤。
左侧边栏自定义添加项
SIMPLEUI_CONFIG = {
'system_keep': True,
# 'menu_display': ['Simpleui', '测试', '权限认证', '动态菜单测试'], # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
'dynamic': True, # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
'menus': [
{
'name': '可视化',
'icon': 'fa-fw fa fa-leaf',
'models': [{
'name': '文章报表',
'icon': 'far fa-surprise',
'url': 'https://www.baidu.com'
}]
},
]
}
其他小配置
# simpleui配置
SIMPLEUI_HOME_INFO = False # 去掉简介栏
SIMPLEUI_LOGO = 'https://www.liboer.top/static/image/favicon.ico' # logo
更多可以去官网查看
导入导出插件
安装
pip3 install django-import-export
使用
去app中注册
INSTALLED_APPS = [
'simpleui',
'import_export',
]
配置IMPORT_EXPORT_USE_TRANSACTIONS,默认值为False。它确定库是否会在数据导入中使用数据库事务,以确保安全。
# 导入导出
IMPORT_EXPORT_USE_TRANSACTIONS = True
在admin.py文件中给想要添加导入导出的表的管理类继承ImportExportModelAdmin即可,这个插件实际上也是对django的ModelAdmin进行一个重写并扩展功能。
@admin.register(models.Article)
class ArticleAdmin(ImportExportModelAdmin):
list_display = ['title', category, 'update_time', 'is_display']
list_editable = ['is_display']
list_filter = ['title']
form = ArticleForm
后话
我的博客目前正常运行,这是我自己建立博客网站的记录和总结。如果你按照我的教程去做,一般是不会出现问题 ,但是,总会有bug发生。如果你遇到了问题,欢迎与我交流沟通。
最后,如果你觉得这篇文章对你有用的话,欢迎一键三连,酌情打赏,谢谢!
以上是关于Django搭建个人博客平台4---后台admin优化simpleui和导入导出的主要内容,如果未能解决你的问题,请参考以下文章
Django搭建个人博客平台7---自定义基于Bootstrap的分页组件
Django搭建个人博客平台7---自定义基于Bootstrap的分页组件
Django搭建个人博客平台3---博客表结构设计和markdown编辑器
Django搭建个人博客平台3---博客表结构设计和markdown编辑器