Django的Xadmin使用
Posted dr-wei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django的Xadmin使用相关的知识,希望对你有一定的参考价值。
Django Xadmin
通常在实际的开发当中, 除了前后端分离的项目, 还有一些前后端不分离的项目, 这样我们在访问不分离的页面的时候, 就可以通过Django自带的admin管理模块来轻松实现后台管理, 但是由于你的审美要求较高咋办呢? 自带admin后台实在是太难看了, 也太难用了, 于是乎Xadmin就基于Django的admin开发了一个新的后台管理, 不仅融合了admin的快速组成员管理, 还基于Bootstrap美化了界面, 还有更多图标显示等你来发崛
小知识点:如果是前后端不分离的项目, 也是可以借用其他的admin客户端, 比如Vue有一个 vue-element-admin 也十分好看
安装:切换到虚拟环境下
pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
注册app
INSTALLED_APPS = [
# ...
# xamin主体模块
'xadmin',
# 渲染表格模块
'crispy_forms',
# 为模型通过版本控制,可以回滚数据
'reversion',
]
Xadmin数据库迁移
xadmin:需要自己的数据库模型类,完成数据库迁移, 迁移之后就会多出相对应的xadmin表
>: python manage.py migrate
设置Xadmin路由
设置主路由替换掉admin:主urls.py
# xadmin的依赖
import xadmin
xadmin.autodiscover()
# xversion模块自动注册需要版本控制的 Model
from xadmin.plugins import xversion
xversion.register_models()
urlpatterns = [
# 用Xadmin后台替换原生的admin后台
path(r'xadmin/', xadmin.site.urls),
]
创建超级用户
创建超级用户:外层luffyapi路径终端
>: python manage.py createsuperuser
账号密码设置:admin | admin
完成全局美化配置
完成xadmin全局配置:新建home/adminx.py
# home/adminx.py
# xadmin全局配置
import xadmin
from xadmin import views
class GlobalSettings(object):
"""xadmin的全局配置"""
site_title = "路飞学城" # 设置站点标题
site_footer = "路飞学城有限公司" # 设置站点的页脚
menu_style = "accordion" # 设置菜单折叠
xadmin.site.register(views.CommAdminView, GlobalSettings)
注册相应的字段以及Xadmin
在adminx.py中注册model:home/adminx.px
from . import models
# 注册
xadmin.site.register(models.Banner)
修改app:home的名字:xadmin页面上的显示效果
# home/__init__.py
default_app_config = "home.apps.HomeConfig"
# home/apps.py
from django.apps import AppConfig
class HomeConfig(AppConfig):
name = 'home'
verbose_name = '我的首页'
xadmin的使用
1.需要在app
中创建adminx.py
文件
import xadmin
from repository import models
from xadmin import views
class UserProfileAdmin(object):
# 显示的字段名称
list_display = ['id','name' ,'email','phone','mobile']
# 搜索时可输入的字段内容
search_fields = ['id', 'name', 'email', 'phone']
# 点击id可进入详细界面进行编辑(默认的)
list_display_links = ('id',)
# 可编辑的列名
list_editable = ['name' ,'email','phone','mobile']
# list_filter = ['name' ,'email','phone','mobile']
# 每页显示多少条
list_per_page = 20
#根据id排序
ordering = ('id',)
#设置只读字段
readonly_fields = ('user_email',)
#显示本条数据的所有信息
show_detail_fields = ['asset_name']
xadmin.site.register(models.UserProfile,UserProfileAdmin)
2.数据导出
如果想要导出Excel
数据,需要安装xlwt
。
默认情况下,xadmin
会提供Excel
,CSV
,XML
,json
四种格式的数据导出,可以通过设置OptionClass
的list_export
属性来指定使用哪些导出格式(四种格式分别用xls
,csv
,xml
,json
表示)或是将list_export
设置为None
来禁用数据导出功能
list_export = ('xls', 'xml', 'json')
list_export_fields = ('id', 'name', 'title')
3.设置全局的配置
# 全局修改,固定写法
class GlobalSettings(object):
# 修改title
site_title = 'xxx后台管理界面'
# 修改footer
site_footer = 'xxx的公司'
# 收起菜单
menu_style = 'accordion'
# 设置 models图标
# https://v3.bootcss.com/components/
# http://www.yeahzan.com/fa/facss.html
global_search_models = [models.Disk, models.Server]
global_models_icon = {
# Server: "glyphicon glyphicon-tree-conifer", Pool: "fa fa-cloud"
models.Server: "fa fa-linux", models.Disk: "fa fa-cloud"
}
# 将title和footer信息进行注册
xadmin.site.register(views.CommAdminView,GlobalSettings)
4.图表显示
data_charts = {
"host_service_type_counts": {
'title': '部门机器使用情况',
'x-field': "business_unit",
'y-field': ("business_unit"),
'option': {
"series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}},
"xaxis": {"aggregate": "count", "mode": "categories"}
},
},
"host_idc_counts": {
'title': '机房统计',
'x-field': "idc",
'y-field': ("idc",),
'option': {
"series": {"bars": {"align": "center", "barWidth": 0.3, "show": True}},
"xaxis": {"aggregate": "count", "mode": "categories"}
}
}
}
5.注册模型与对应的管理类
xadmin.site.register(models.Disk, DiskAdmin)
xadmin.site.register(models.Server, ServerAdmin)
xadmin.site.register(models.IDC, IDCAdmin)
xadmin.site.register(models.UserProfile, UserProfileAdmin)
xadmin.site.register(models.UserGroup, UserGroupAdmin)
以上是关于Django的Xadmin使用的主要内容,如果未能解决你的问题,请参考以下文章