zoukankan      html  css  js  c++  java
  • Django-Xadmin

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

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

    一. 安装

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

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

      下载完成后,在配置文件中注册如下应用

    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    
        'xadmin',
        'crispy_forms',
        'reversion',
    
        'app01.apps.App01Config',
    ]
    
    # 修改使用中文界面
    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

    二. 使用

    • xadmin不再使用Django的admin.py,而是需要编写代码在adminx.py文件中。

    • xadmin的站点管理类不用继承 admin.ModelAdmin,而是直接继承object即可。

      例如:在子应用中创建adminx.py文件。(注意:不要创建xadmin.py)

      站点的全局配置
    import xadmin
    from 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一致。

    from .models import Book
    
    
    class BookAdminModel(object):
        # 控制列表展示的字段 设置默认展示字段
        list_display = ['title', 'price', 'pub_date', 'publish', 'authors']  
        # 控制可以通过搜索框搜索的字段名称,xadmin使用的是模糊查询
        search_fields = ['id', 'title', 'price']  
        # 可以进行过滤操作的列,对于分类、性别、状态
        list_filter = ['id', 'title', 'price', 'publish']  
        # 排序,默认升序
        ordering = ['-price']  
        # 展示详情信息的字段
        show_detail_fields = ['title']  
        # 设置允许直接在展示页编辑的字段
        list_editable = ['price']  
        # 设置列表页的刷新频率
        refresh_times = [3, 6, 30, 60]  
        # 控制列表页导出数据的可选格式,设置None来禁用数据导出功能
        list_export = ['xls', 'csv', 'json']  
        # 控制是否显示书签功能,False表示关闭
        show_bookmarks = True  
        # 显示图表数据
        data_charts = {
            'price_total': {
                'title': '书籍单价曲线图',
                'x-field': 'id',
                'y-field': 'price',
                'order': ('id',),
            },
            # 可以有多个图表
            # 'price_total2': {
            #     'title': '书籍单价曲线图2',
            #     'x-field': 'id',
            #     'y-field': 'price',
            #     'order': ('id',),
            # }
        }
        # 控制菜单的图标(图标的设置可以参考boostrap的图标css名称)
        model_icon = 'fa fa-gift'
        # 设置编辑页中只读字段
        readonly_fields = ['title']
        # 设置在编辑页隐藏的字段
        exclude = ['pub_date']
    
    
    xadmin.site.register(Book, BookAdminModel)
  • 相关阅读:
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    使用Jasmine和karma对传统js进行单元测试
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    nginx 基于IP的多虚拟主机配置
    Shiro 框架的MD5加密算法实现原理
    项目实战:Qt+OSG三维点云引擎(支持原点,缩放,单独轴或者组合多轴拽拖旋转,支持导入点云文件)
    实用技巧:阿里云服务器建立公网物联网服务器(解决阿里云服务器端口,公网连接不上的问题)
  • 原文地址:https://www.cnblogs.com/Michael--chen/p/10971046.html
Copyright © 2011-2022 走看看