xadmin站点管理类

9. Xadmin

xadmin是Django的第三方扩展,比使用Django的admin站点更强大也更方便。

文档:https://xadmin.readthedocs.io/en/latest/index.html

9.1. 安装

通过如下命令安装xadmin的最新版

pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2

在配置文件中注册如下应用

INSTALLED_APPS = [    ...    ‘xadmin‘,    ‘crispy_forms‘,    ‘reversion‘,    ...]?# 修改使用中文界面LANGUAGE_CODE = ‘zh-Hans‘?# 修改时区TIME_ZONE = ‘Asia/Shanghai‘

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

python manage.py makemigrationspython manage.py migrate

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

import xadminxadmin.autodiscover()?# version模块自动注册需要版本控制的 Modelfrom xadmin.plugins import xversionxversion.register_models()?urlpatterns = [    path(r‘xadmin/‘, xadmin.site.urls),]

如果之前没有创建超级用户,需要创建,如果有了,则可以直接使用之前的。

python manage.py createsuperuser

9.2. 使用

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

例如:在子应用中创建adminx.py文件。

站点的全局配置

import xadminfrom xadmin import views?class BaseSetting(object):    """xadmin的基本配置"""    enable_themes = True  # 开启主题切换功能    use_bootswatch = True?xadmin.site.register(views.BaseAdminView, BaseSetting)?class GlobalSettings(object):    """xadmin的全局配置"""    site_title = "路飞学城"  # 设置站点标题    site_footer = "路飞学城有限公司"  # 设置站点的页脚    menu_style = "accordion"  # 设置菜单折叠?xadmin.site.register(views.CommAdminView, GlobalSettings)

站点Model管理

xadmin可以使用的页面样式控制基本与Django原生的admin一直。

  • list_display 控制列表展示的字段

    list_display = [‘id‘, ‘btitle‘, ‘bread‘, ‘bcomment‘]
  • search_fields 控制可以通过搜索框搜索的字段名称,xadmin使用的是模糊查询
    search_fields = [‘id‘,‘btitle‘]
  • list_filter 可以进行过滤操作的列,对于分类、性别、状态
    list_filter = [‘is_delete‘]
  • ordering 默认排序的字段
  • show_detail_fields 在列表页提供快速显示详情信息
  • list_editable 在列表页可以快速直接编辑的字段
  • refresh_times 指定列表页的定时刷新
    refresh_times = [5, 10,30,60]  # 设置允许后端管理人员按多长时间(秒)刷新页面?
  • list_export 控制列表页导出数据的可选格式
    list_export = (‘xls‘, ‘xml‘, ‘json‘)   list_export设置为None来禁用数据导出功能list_export_fields = (‘id‘, ‘btitle‘, ‘bpub_date‘)
  • show_bookmarks 控制是否显示书签功能
    show_bookmarks = True
  • data_charts 控制显示图表的样式
    data_charts = {        "order_amount": {          ‘title‘: ‘图书发布日期表‘,           "x-field": "bpub_date",           "y-field": (‘btitle‘,),          "order": (‘id‘,)        },    #    支持生成多个不同的图表    #    "order_amount": {    #      ‘title‘: ‘图书发布日期表‘,     #      "x-field": "bpub_date",     #      "y-field": (‘btitle‘,),    #      "order": (‘id‘,)    #    },    }
    • title 控制图标名称
    • x-field 控制x轴字段
    • y-field 控制y轴字段,可以是多个值
    • order 控制默认排序
  • model_icon 控制菜单的图标【图标的设置可以参考bootstrap的图标css名称】
    class BookInfoAdmin(object):    model_icon = ‘fa fa-gift‘?xadmin.site.register(models.BookInfo, BookInfodmin)
  • readonly_fields 在编辑页面的只读字段
  • exclude 在编辑页面隐藏的字段

原文地址:https://www.cnblogs.com/linux985/p/11076218.html

时间: 2024-11-24 15:39:42

xadmin站点管理类的相关文章

第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理

第三百八十节,Django+Xadmin打造上线标准的在线教育平台-将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点:xadmin的数据表注册,是到app下查找的adminx文件,所以我们必须在app下创建一个adminx.py文件,所有关于数据表注册到xadmin后台的代码都是写在adminx.py文件里 adminx.py文件编写 1.自定义一个类来继承object对象,这个类叫做数据表管理器 数据表管理器里

6Python全站之路系列之Django站点管理

Python全栈之路系列之Django站点管理 站点管理也称之为后台,比如说博客的后台你可以发布文章,修改文章,修改频道等信息. Django使用极少的代码为你做了一切,在Django中创建管理界面已经不是问题,它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即工作. django.contrib包 Django自动管理工具是django.contrib的一部分.django.contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框

Django站点管理——管理站点

参考文献: https://docs.djangoproject.com/zh-hans/2.0/ref/contrib/admin/ Django的admin站点 Django最强大的部分之一是自动管理界面. 它从您的模型中读取元数据,以提供快速,以模型为中心的界面,受信任的用户可以在其中管理您网站上的内容. 管理员的建议用途仅限于组织的内部管理工具. 它不是用于构建整个前端. 管理员有许多用于自定义的钩子,但要注意尝试专门使用这些钩子. 如果您需要提供一个更加以流程为中心的接口来抽象出数据库

Django-admin站点管理的详细使用

使用Django的管理模块,需要按照如下步骤操作: 管理界面本地化 创建管理员 注册模型类 自定义管理页面 1 管理界面本地化 在settings.py中设置语言和时区 LANGUAGE_CODE = 'zh-hans' # 使用中国语言 TIME_ZONE = 'Asia/Shanghai' # 使用中国上海时间 2 创建超级管理员 创建管理员的命令如下,按提示输入用户名.邮箱.密码. python manage.py createsuperuser 打开浏览器,在地址栏中输入如下地址后回车.

用户和组管理类命令

1.列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户登陆多次,则显示一次即可. who |cut -d' ' -f1 | sort | uniq 2.取出最后登陆到当前系统的用户的相关信息 w|tail-n1或者who|tail-n1 3.取出当前系统上被用户当做其默认shell的最多的那个shell cat /etc/passwd | awk -F':' '{print $7}'|uniq –c 结果为:/sbin/nologin awk -F':' '{a[$7]++}END{fo

DownloadManager 下载管理类

演示 简介 从Android 2.3开始新增了一个下载管理类,在SDK的文档中我们查找android.app.DownloadManager可以看到.下载管理类可以长期处理多个HTTP下载任务,客户端只需要给出请求的Uri和存放目标文件的位置即可,下载管理使用了一个AIDL服务器,所以可以放心的在后台执行,同时实例化的方法需要使用getSystemService(Context.DOWNLOAD_SERVICE) ,我们可以轻松的通过新增的这个API实现Android平台上的文件下载操作. Do

转 学生管理类

看上去很工整. <!DOCTYPE html><html><head> <title>学生管理类</title></head><body><form method="post"> 学号:<input type="text" name="number"><br/> 姓名:<input type="text"

linux用户和管理类常用命令

1.列出当前系统上所有已经等了的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 2.取出最后登录到当前系统的用户的相关信息 3.取出当前系统上被用户当作其默认shell的最多的那个shell. 4.将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中. 5.取出当前主机的IP地址,提示:对ifconfig命令进行切分.  6.取出/etc/目录下所有以.com结尾的文件的文件名,并将其名字转换为大写后保存至/t

1、自学——Linux的学习进度与任务【时间日期管理类的命令】

时间日期管理类的命令 时间日期管理类的命令:  # date :显示 # date MMDDhhmm[CC]YY.ss :设定 # date [+FORMAT] %Y:4位年份 %y:  2位年份 %M:  分 %m:月 %d:  日 %H:  时 %S:  秒 %T: 时间(以冒号隔开) %D:日期 %F: 日期(以横杆隔开) unix元年:1970-01-01 00:00:00 %s:timestamp:从unix元年开始到此刻所经历的秒数 # cal   :    显示日历 # cal #