• Django 后台管理xadmin


    一. xadmin的使用

      后台管理在开发中可以给我们提供很大的便利,django自带了一个后台管理admin,不过还有一个xadmin比django自带的好用一些,功能更加强大,为模型提供了版本控制,可以回滚数据。django中权限主要靠六表实现,首先是基础的user、group、permission三表,然后分别是user与group的多对多关系表、group与permission的多对多关系表,最后django特有的user与permission的多对多关系表。django基于用户user、组group、权限permission三张表的关系,一共六张表来实现权限管理。

      xadmin里面提供了权限的管理,而且使用很简单。

    1.1 xadmin的使用流程

      1. 安装xadmin

      因为xadmin是基于Pillow模块的,所以需要先安装Pillow模块:

    # 安装Pillow模块
    pip install Pillow
    
    # 安装xadmin第一种方式
    pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
    
    # 安装xadmin第二种方式
    pip install xadmin

      1.2 在配置的APP中注册xadmin

    INSTALLED_APPS = [
        # ...
        # xamin主体模块
        'xadmin',
        # 渲染表格模块
        'crispy_forms',
        # 为模型通过版本控制,可以回滚数据
        'reversion',
    ]

      1.3 xadmin数据库迁移

      因为xadmin是有自己的数据库模型类的,所以需要进行数据库迁移操作。

    python manage.py makemigrations
    python manage.py migrate

      1.4 在主路由中替换掉admin

    # xadmin的依赖
    import xadmin
    xadmin.autodiscover()
    # xversion模块自动注册需要版本控制的 Model
    from xadmin.plugins import xversion
    xversion.register_models()
    
    urlpatterns = [
        # 将原本的admin路由改成以下方式即可
        path(r'xadmin/', xadmin.site.urls),
    ]

      1.5 创建超级用户

    # 在项目根目录下的终端
    python manage.py createsuperuser
    
    # 账号密码设置(随意设置):admin | admin

      1.6 完成xadmin全局配置:在APP下新建adminx.py

    # xadmin全局配置
    import xadmin
    from xadmin import views
    
    class GlobalSettings(object):
        """xadmin的全局配置"""
        site_title = "海贼学城"  # 设置站点标题
        site_footer = "海贼王有限公司"  # 设置站点的页脚
        menu_style = "accordion"  # 设置菜单折叠
    
    xadmin.site.register(views.CommAdminView, GlobalSettings)

      配置前:

      利用以上配置后,在项目的配置文件中修改时区与语言设置如下:

    # 将英文改为中文
    LANGUAGE_CODE = 'zh-hans'
    
    # 设定时区
    TIME_ZONE = 'Asia/Shanghai'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True

      最终显示如下:

      1.7 在adminx.py中注册model

    from . import models
    # 注册
    xadmin.site.register(models.模型表名)

      同时模型表中字段可以增加verbose_name属性,表示后台管理时显示的名字。

      1.8 修改app:home的名字:xadmin页面上的显示效果

    # APP下的__init__.py
    default_app_config = "home.apps.HomeConfig"
    
    # APP下的apps.py
    from django.apps import AppConfig
    class HomeConfig(AppConfig):
        name = 'home'
        verbose_name = '我的首页'
  • 相关阅读:
    Linux 文件系统层次结构 笔记 day 02
    新买服务器 设置ssh秘钥登录
    FastSocket客户端/服务端通讯示例 客户端被动接收
    FastSocket学习笔记~制定自已的传输协议~续~制定基于FastSocket的协议
    Oracle 查看表空间使用率
    Oracle查看用户占用的表空间大小
    failed to flush export bulk [default_local]
    Elasticsearch7.x配置文件
    master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster
    4.4 rust Smart Pointers Box and Deref 及 空针指
  • 原文地址:https://www.cnblogs.com/maoruqiang/p/11235147.html
Copyright © 2020-2023  润新知