• 【tips】xadmin


      Django 为大家提供了一个完善的后台管理系统—admin,但是这个后台管理系统总体来说不太适合国人的习惯,所以有大神就使用 bootstrap 和 jQuery,为我们开发了一个第三 方的 Django 后台管理系统—xadmin,这个界面的友好度比较高,目前企业的使用频率比较高,我们来学习一些它的使用吧。


      一、下载安装(tips:如安装过程中出现3444错误,可在文章最后查看楼主亲测可用的解决方案):

    1、在虚拟环境下 使用 pip install 安装

      通过此命令安装,会同时安装 Xadmin 所需的依赖库:django-crispy-forms-1.6.1、django-formtools-2.0httplib2-0.9.2、以及 xadmin-0.6.1,

    pip install django-xadmin

     

      不过这种方式可能会出现编码等问题,不推荐。

    2、下载源码安装:首先下载源代码,下载地址:https://github.com/sshwsfc/xadmin

      可对源码修改,体验更新特性,推荐。

      2.1 解压缩后将名为 xadmin 的文件夹拷贝进项目根目录下,当做一个模块存在。

      

      2.2 setting 文件中配置:

    
    
    INSTALLED_APPS = [
    ...
    'xadmin',
    'crispy_forms',
    'reversion',
    ]

     

          2.3 配置主路由,取代 Django 默认的 admin::

    from django.conf.urls import url
    from django.conf.urls import include
    # from django.contrib import admin
    
    # xadmin后台管理系统主路由配置
    import xadmin
    from xadmin.plugins import xversion
    xadmin.autodiscover()
    xversion.register_models()
    
    
    urlpatterns = [
        ...
        # url(r'^admin/', admin.site.urls),    
        url(r'^xadmin/', xadmin.site.urls),
    ]

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

    python manage.py makemigrations    # 此句可以不用执行, xadmin已自动生成migrations文件
    python manage.py migrate

          2.5 创建超级用户:

    python manage.py createsuperuser

          

          2.6 大功告成, 使用超级用户准备登录(公司项目基本不会给你管理员权限,这里只做演示用)。

          

          2.7 登陆成功,访问后台,界面如下:

            如果出现错误,可以使用如下命令升级

    pip install --upgrade django-formtools

            注意,升级的过程中,如果将 Django 也升级了,如果不想升级 Django 的话,卸载了重新安装即可


      二 、 使用(后台管理)

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

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

         站点的全局配置

    import xadmin
    from xadmin import views
    
    from . import models
    
    class BaseSetting(object):
        """xadmin的基本配置"""
        enable_themes = True  # 开启主题切换功能
        use_bootswatch = True
    
    xadmin.site.register(views.BaseAdminView, BaseSetting)
    
    class GlobalSettings(object):
        """xadmin的全局配置"""
        site_title = "xxxxxxxx"  # 设置站点标题
        site_footer = "xxxxxxx"  # 设置站点的页脚
        menu_style = "accordion"  # 设置菜单折叠
    
    xadmin.site.register(views.CommAdminView, GlobalSettings)
    View Code

         站点Model管理

    xadmin可以使用的页面样式控制基本与Django原生的admin一直。
    
        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 控制菜单的图标
    View Code

    最后附上一个楼主安装遇到的一个小问题和解决办法:

    问题:python3安装xadmin出现 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444

    解决办法:

      1、README.rst这个文件的编码有问题,可是内容没什么重要的,可以直接到github上下载安装包,然后新建一个txt空文件,把文件名改成        README.rst,替换原来的文件。

        下载安装包,下载zip压缩文件,下载地址:

        https://github.com/sshwsfc/xadmin

      2、替换成功后,把压缩包放到一个文件夹中,在命令窗口中进入存放压缩包的文件下,执行pip命令。

      

     

      

    参考资料:

    xadmin 文档:http://xadmin.readthedocs.io/en/docs-chinese/

    xadmin 官网:http://sshwsfc.github.io/xadmin/

     

    一身污浊、自得其乐

     

        

     

     

  • 相关阅读:
    【BZOJ】1626: [Usaco2007 Dec]Building Roads 修建道路(kruskal)
    【BZOJ】1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛(lis)
    【BZOJ】1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏(刷水严重)
    【BZOJ】1699: [Usaco2007 Jan]Balanced Lineup排队(rmq/树状数组)
    【BZOJ】1625: [Usaco2007 Dec]宝石手镯(01背包)
    【BZOJ】1617: [Usaco2008 Mar]River Crossing渡河问题(dp)
    【BZOJ】1618: [Usaco2008 Nov]Buying Hay 购买干草(dp)
    【BZOJ】1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(dp/-bfs)
    【BZOJ】1613: [Usaco2007 Jan]Running贝茜的晨练计划(dp)
    【BZOJ】1612: [Usaco2008 Jan]Cow Contest奶牛的比赛(floyd/dfs)
  • 原文地址:https://www.cnblogs.com/wqunlong/p/10211484.html
Copyright © 2020-2023  润新知