xadmin 是Django的第三方扩展后台管理工具,比使用Django的admin站点更强大也更方便。
官方文档

1. 安装与基础配置

通过以下命令安装最新版本(推荐加源提升下载速度)

pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 -i https://pypi.tuna.tsinghua.edu.cn/simple

下载完成后,在配置文件中注册(“xadmin”,“crispy_froms”,“reversion”)应用:

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','xadmin','crispy_forms','reversion','home',
]#  修改使用中文界面
LANGUAGE_CODE = 'zh-Hans'# 修改时区
TIME_ZONE = 'Asia/Shanghai'

xadmin有建立自己的数据库模型,需要进行数据库迁移。

python manage.py makemigrations
python manage.py migrate

在总路由中添加xadmin的路由信息

import xadmin
xadmin.autodiscover()# version模块自动注册需要版本控制的 Model
from xadmin.plugins import xversion
xversion.register_models()urlpatterns = [path(r'xadmin/', xadmin.site.urls),
]

如果之前没有创建超级用户,需要创建;如果已有,可直接使用登录后台

python manage.py createsuperuser

2.使用

  • xadmin不再使用 Django的admin.py,而是需要编写代码在adminx.py文件中。
  • xadmin的站点管理类不用继承 admin.ModelAdmin, 而是直接继承object即可。

例如在子应用home下创建adminx.py文件(注意不能命名为 xadmin.py !!!)

站点全局配置

import xadmin
from xadmin import viewsclass BaseSetting(object):"""xadmin的基本配置"""enable_themes = True  # 开启主题切换功能use_bootswatch = True  # 引导控制菜单xadmin.site.register(views.BaseAdminView, BaseSetting)class GlobalSettings(object):"""xadmin的全局配置"""site_title = "甜甜资讯"  # 设置站点标题site_footer = "真甜couple出品"  # 设置站点的页脚menu_style = "accordion"  # 设置菜单折叠xadmin.site.register(views.CommAdminView, GlobalSettings)

效果如下:

注册子应用下模型到xadmin中

在当前子应用下创建 adminx.py,添加如下代码

from .models import  BannerInfo
class BannerInfoModelAdmin(object):list_display = ['title', 'orders', 'is_show']    # 设置模型显示的字段
xadmin.site.register(BannerInfo, BannerInfoModelAdmin)

更改子应用在后台管理中的名称

子应用/apps.py

class HomeConfig(AppConfig):name = 'home'verbose_name = '我的首页'   # 子应用在后台站点的显示名称

子应用/init.py

default_app_config = "home.apps.HomeConfig"   # home是子应用名称

3.其他功能使用

参考博客

定时刷新、数据详情

from .models import  BannerInfo
class BannerInfoModelAdmin(object):list_display = ['title', 'orders', 'is_show']    # 设置模型显示的字段show_detail_fields = ['title']   # 设置显示数据详情refresh_times = [3, 5, 7 ]   #设置定时刷新时间
xadmin.site.register(BannerInfo, BannerInfoModelAdmin)

书签

数据列表页面特定的数据过滤,排序等结果,添加的书签还可以在首页仪表盘中作为小组件添加。
在 Model OptionClass中设定如下属性:

  • show_bookmarks
    设置是否开启书签功能,默认为True
  • list_bookmarks
    设置默认的书签. 用户可以在列表页面添加自己的书签, 你也可以实现设定好一些书签, 使用实例如下:
class UserInfoAdmin(object):list_display = ('user_name', 'user_email', 'user_mobile')show_detail_fields = ['user_name']refresh_times = (3, 5, 7)list_bookmarks = [{     'title': "存在邮箱",“query”: {"user_email_contains": '@'},"order": ("-user_name",),"cols": ('user_name', 'user_email', 'user_mobile'),}]

效果如下:

图表

在数据列表页面,根据列表数据生成图表,可以指定多个数据列,生成多个图表。

在Model OptionClass 中设定data_charts属性,该属性为dict类型,key是图表的标示名称,value是图表的具体设置属性;
图标主要属性(key-value):

  • title : 图表的显示名称

  • x-field : 图表的 X 轴数据列, 一般是日期, 时间等

  • y-field : 图表的 Y 轴数据列, 该项是一个 list, 可以同时设定多个列, 这样多个列的数据会在同一个图表中显示

  • order : 排序信息, 如果不写则使用数据列表的排序

示例:

效果

数据导出

如果想要导出Excel数据,需要安装xlwt。

默认情况下,xadmin会提供Excel,CSV,XML,json四种格式的数据导出,可以通过设置OptionClass的list_export属性来指定使用哪些导出格式(四种格式分别用xls,csv,xml,json表示)或是将list_export设置为None来禁用数据导出功能。

过滤

在 Model OptionClass 中设置以下属性:

  • list_filter 属性:

    该属性指定可以过滤的列的名字, 系统会自动生成搜索器

  • search_fields 属性:

    属性指定可以通过搜索框搜索的数据列的名字, 搜索框搜索使用的是模糊查找的方式, 一般用来搜素名字等字符串字段

  • free_query_filter 属性:

    默认为 True , 指定是否可以自由搜索. 如果开启自由搜索, 用户可以通过 url 参数来进行特定的搜索, 例如:

    http://xxx.com/xadmin/auth/user/?name__contains=tony

设置只读字段

在使用xadmin的时候,ModelAdmin默认只有对于model的增删改查,但是总是有些字段是不希望用户来编辑的。而 readonly_fields 设置之后不管是admin还是其他用户都会变成只读,而我们通常只是想限制普通用户。 这时我们就可以通过重写 get_readonly_fields 方法来实现对特定用户的只读显示。
示例

class UserInfoAdmin():def get_readonly_fields(self):"""  重新定义此函数,限制普通用户所能修改的字段  """if self.user.is_superuser:self.readonly_fields = []return self.readonly_fieldsreadonly_fields = ('user_email',)

Dango 之 Xadmin相关推荐

  1. select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动

    前言 当我们选择项目分类的时候,一个项目下关联多个模块,同时有这两个选项框的时候,需要实现选中一个项目,模块里面自动删除出该项目下的模块,如下图这种 解决基本思路: 1.写个jqeury脚本监听cha ...

  2. xadmin后台页面定制和添加服务器监控组件

    xadmin定制 项目需要添加服务器监控页面,碍于xadmin不是很好自定义页面,之前写过插件,太麻烦了,还是直接改源码 原理其实很简单,因为xadmin的处理流程和django类似,都是通过拦截UR ...

  3. Django xadmin 后台自定义action 动作

    adminx.py from xadmin import views from .models import * # 自定义动作所需 from django import forms, VERSION ...

  4. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台-sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  5. xadmin引入样式无效

    当使用下面方式引入xadmin样式的时候发现并没有效果: file:adminx.py xadminxadmin views BaseSetting(): enable_themes = use_bo ...

  6. python测试开发django-35.xadmin注册表信息

    前言 xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件. 然后在adminx.py文件控制页面 ...

  7. Django+xadmin打造在线教育平台(十)

    目录 在线教育平台(一)      在线教育平台(二) 在线教育平台(三)      在线教育平台(四) 在线教育平台(五)      在线教育平台(六) 在线教育平台(七)      在线教育平台( ...

  8. Luffy之Xadmin以及首页搭建(轮播图,导航)

    1. 首页 1.1 轮播图 admin站点配置支持图片上传 pip install Pillow 默认情况下,Django会将上传的图片保存在本地服务器上,需要配置保存的路径.我们可以将上传的文件保存 ...

  9. 第三百七十七节,Django+Xadmin打造上线标准的在线教育平台—apps目录建立,以及数据表生成...

    第三百七十七节,Django+Xadmin打造上线标准的在线教育平台-apps目录建立,以及数据表生成 apps目录建立 我们创建一个apps目录,将所有的app放到apps目录里去,这样方便管理,也 ...

最新文章

  1. OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划
  2. mysql 复制表数据,表结构的3种方法
  3. 打印JVM配置参数的命令
  4. PaddleOCR——CUDA9.0环境中训练运行错误【Cudnn error, CUDNN_STATUS_BAD_PARAM】解决方案
  5. A/B Matrix CodeForces - 1360G(思维构造)
  6. 前端学习(2683):重读vue电商网站4之登录页面总结使用 iconfont 给输入框添加图标
  7. Linux文件系统不是必须的,而是必要的!
  8. matlab中asix off_遗传算符MATLAB程序-入门必看
  9. JS判断页面是否刷新
  10. 经纬度计算距离公式(测地线距离)
  11. Chrome 管理搜索引擎
  12. 网络学习 2g 3g 4g 5g技术对比
  13. 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
  14. 【成长经历】----陪女朋友拔智齿
  15. 彻底删除Android Studio
  16. git命令行修改用户名密码
  17. iOS开发中集成阿里云视频上传SDK总结
  18. SC92F8003读24C64程序
  19. Git安装教程(详细)
  20. 红旗linux8.0安装教程,RedHat Linux 红旗9.0安装图解

热门文章

  1. 问卷量表调研结果 - data 2022.2.27周五
  2. Paper之RegNet:《Designing Network Design Spaces》的翻译与解读—2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet
  3. ORACLE 11GR2 配置GATEWAY FOR SERVER 问题
  4. 微信加密与登录验证分析
  5. 一图抵千言《ARouter简明扼要原理分析》
  6. 润物无声:java的字符串操作
  7. Android旅游自助项目之订票系统订票功能实现
  8. 信贷系统搭建——实现登录界面与验证
  9. 东京奥组委公布奥运志愿者和城市志愿者昵称
  10. Linux利用脏牛漏洞提权