xadmin简介
As everyone knows, Django自带的admin后台管理界面不太好看, 使用习惯也不符合国内习惯, 因此我们会选择一款基于bootstrap的后台xadmin, 更符合国内使用习惯, 界面也相对更好看。
一、xadmin下载 解压 配置
-
下载链接: github.com/sshwsfc/xad… (注意: 要下载xadmin的zip压缩包)
-
解压到本地目录, 解压后有个xadmin文件夹, 就是我们要使用的xadmin源码啦
二、集成xadmin到我们的项目
-
项目准备
新建一个Django项目, 集成到已有项目则跳过
-
在项目根目录新建文件夹 extra_apps
将之前解压的xadmin文件夹复制到 extra_apps目录下
-
通过pycharm 选中extra_apps文件夹点击鼠标右键选中菜单mark directory as 选择 sources root
-
修改settings.py 配置
# 在INSTALLED_APPS中添加以下app
INSTALLED_APPS = [
......
'xadmin'
'crispy_forms'
'reversion'
]
# 添加extra_apps目录
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
- 配置 urls.py 添加xadmin路由
import xadmin
urlpatterns = [
#path('admin/', admin.site.urls), # django自带admin 我们不用就注释掉
path('admin/', xadmin.site.urls),
]
- 迁移数据
# 命令行执行以下两条命令, 已有的项目也要执行, 生成xadmin相关数据表
python manage.py makemigrations
python manage.py migrate
到这里我们的xadmin就已经继承到我们的Django项目里了, 运行项目, 浏览器访问: http://127.0.0.1:8000/admin/ 路由既可以看到登录界面啦
三、编写admin.py 模块
Django自带的admin注册方式跟xadmin注册方式稍有不同, 我们下边在admin.py模块中将我们的模型注册到xadmin中
import xadmin
from .models import Orders
class OrderAdmin(object):
# xadmin里面显示的字段
list_display = ['orderid', 'mobile', 'add_time']
# 引入搜索框, 可以根据image搜索也可以根据url搜索
search_fields = ['order_id', 'mobile']
# 添加过滤器
list_filter = ['add_time']
#注册
xadmin.site.register(Orders, OredrAdmin)
注册之后刷新xadmin后台就能看到我们注册的模型啦
**xadmin模块常用字段含义
list_display 控制列表展示的字段
search_fields 控制可以通过搜索框搜索的字段名称,xadmin使用的是模糊查询
list_filter 可以进行过滤操作的列
ordering 默认排序的字段
readonly_fields 在编辑页面的只读字段
exclude 在编辑页面隐藏的字段
list_editable 在列表页可以快速直接编辑的字段
show_detail_fileds 在列表页提供快速显示详情信息
refresh_times 指定列表页的定时刷新
list_export 控制列表页导出数据的可选格式
show_bookmarks 控制是否显示书签功能
data_charts 控制显示图标的样式
model_icon 控制菜单的图标
四、xadmin 其他功能扩展
- 更改默认顶部菜单和底部菜单显示内容 和左侧菜单折叠
# 在admin.py 里新增以下代码
from xadmin import views
class GlobalSetting(object):
# 设置后台顶部标题
site_title ='xxx管理后台'
# 设置后台底部标题
site_footer ='xxx公司'
# 设置左侧菜单折叠
menu_style = "accordion"
# 注册到后台
xadmin.site.register(views.CommAdminView, GlobalSetting)
重启程序就能看到我们更改的显示内容啦
2. 开启xadmin主题切换 (默认是不开启的)# 在admin.py 里新增代码
class BaseSetting(object):
# 启用主题管理器
enable_themes =True
# 使用主题
use_bootswatch =True
# 注册主题设置
xadmin.site.register(views.BaseAdminView, BaseSetting)
重启程序就能看到切换主题的按钮了
五、常见问题
Q: xadmin 后台不显示中文
解决:
修改settings文件中的 LANGUAGE_CODE = 'zh-hans',
TIME_ZONE ='Asia/Shanghai'
保存之后刷新界面,可以看到已显示中文了。
Q: 自己注册的模型显示的是表名
解决:
创建Models模型时自定义后台菜单
class Order(models.Model):
order_id = models.CharField(max_length=64, null=False, verbose_name="订单号")
mobile = models.CharField(max_length=11, null=False, verbose_name="取件人手机号")
class Meta:
db_table ='Order'
# 定义后台菜单显示内容
verbose_name ="学生"
verbose_name_plural = verbose_name
def __str__(self):
return self.name
# 创建字段的时候 定义 verbose_name为想展示的字段名
# 在Meta函数内定义菜单名
持续更新中...
~~ Over ~~~~