一. 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模块:

  1. # 安装Pillow模块
  2. pip install Pillow
  3.  
  4. # 安装xadmin第一种方式
  5. pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
  6.  
  7. # 安装xadmin第二种方式
  8. pip install xadmin

  1.2 在配置的APP中注册xadmin

  1. INSTALLED_APPS = [
  2. # ...
  3. # xamin主体模块
  4. 'xadmin',
  5. # 渲染表格模块
  6. 'crispy_forms',
  7. # 为模型通过版本控制,可以回滚数据
  8. 'reversion',
  9. ]

  1.3 xadmin数据库迁移

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

  1. python manage.py makemigrations
  2. python manage.py migrate

  1.4 在主路由中替换掉admin

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

  1.5 创建超级用户

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

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

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

  配置前:

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

  1. # 将英文改为中文
  2. LANGUAGE_CODE = 'zh-hans'
  3.  
  4. # 设定时区
  5. TIME_ZONE = 'Asia/Shanghai'
  6.  
  7. USE_I18N = True
  8.  
  9. USE_L10N = True
  10.  
  11. USE_TZ = True

  最终显示如下:

  1.7 在adminx.py中注册model

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

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

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

  1. # APP下的__init__.py
  2. default_app_config = "home.apps.HomeConfig"
  3.  
  4. # APP下的apps.py
  5. from django.apps import AppConfig
  6. class HomeConfig(AppConfig):
  7. name = 'home'
  8. verbose_name = '我的首页'

Django 后台管理xadmin的更多相关文章

  1. django后台管理-admin

    0922自我总结 django后台管理-admin 一.模型注册 admin.py 注册方式一: #在对于注册的app中的admin文件中导入模型然后注册模型 admin.site.register( ...

  2. Django——后台管理

    1.要使用Django-admin后台的前提 INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', #必须有这一项 'django.contri ...

  3. Django后台管理的使用

    Django后台管理的使用 参考文章:https://www.runoob.com/django/django-admin-manage-tool.html 1.编写好models 直接在admin. ...

  4. Django后台管理界面

    之前的几篇记录了模板视图.模型等页面展示的相关内容,这篇主要写一下后台admin管理界面的内容. 激活管理界面 Django管理站点完全是可选择的,之前我们是把这些功能给屏蔽掉了.记得上篇中Djang ...

  5. django后台管理-ModelAdmin对象

    Django最强大的部分之一是自动生成的管理后台界面. 它从你的模型中读取元数据,以提供一个快速的.以模型为中心的界面,信任的用户可以在这里管理你网站上的内容. 建议管理后台仅作为组织的一个内部管理工 ...

  6. 强大的Django后台管理

    Django 后台 django的后台我们只要加少些代码,就可以实现强大的功能.与后台相关文件:每个app中的 admin.py 文件与后台相关 下面示例是做一个后台添加博客文章的例子: 新建一个 名 ...

  7. [oldboy-django][1初始django]后台管理页面的布局 + djano母版(继承html)

    完善学员管理系统 - bootstrap fontawesome - 分页,路径导航,表格(class样式),消息图标(i标签),邮件图标(i标签) - 响应式导航 @media(min-width, ...

  8. Django 后台管理 之登录和注销

    Session:     session是服务器端生成保存的一个键值对 , session内部机制依赖于cookie . 用户登录后返回给客户端一个随机字符串,客户端带着随机字符串访问服务器,用于验证 ...

  9. django后台管理

    后台管理 1)  本地化 语言和时区的本地化. 修改settings.py文件. # LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-hans' # TIME_ ...

随机推荐

  1. 语言发展与python

    编程语言的发展史(机械语言.汇编语言.高级语言) 机械语言:直接使用二进制与计算机沟通,直接操作硬件,执行效率高,开发效率低. 汇编语言:用简单的英文代替二进制,直接操作硬件,执行效率较机械语言低,开 ...

  2. getshell技巧-phpMyAdmin的利用

    生活就是泥沙俱下,鲜花和荆棘并存.--毕淑敏 1.明确目标2.信息收集3.漏洞挖掘和利用 信息收集 明确路径 利用目录扫描工具,对目标网站进行扫描,获取网站目录.常用工具有Kali中的DirBuste ...

  3. 服务治理与RPC · 跬步

    以前写过Django中使用zerorpc的方法,但是由于我们的Django是运行在gevent下,而zeromq需要启动一个后台进程处理消息,与gevent使用的greenlet携程是冲突的. 在Ja ...

  4. IO和流

    I/O和流 I/O是Input和Output的缩写 从读写设备,包括硬盘文件,内存,键盘输入,屏幕输出,网路 输入输出"内容"(字节或文本) 流是对输入输出设备的一种抽象 从流中读 ...

  5. C++走向远洋——51(数组类运算的实现)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  6. USB小白学习之路(8)FX2LP cy7c68013A——Slave FIFO 与FPGA通信(转)

    此博客转自CSDN:http://blog.csdn.net/xx116213/article/details/50535682 这个博客只对自己理解CY7C68013的配置有一定的帮助,对于配置CY ...

  7. 关于.net MVC中主视图和分部视图的数据共享遇到的问题

    今天在开发web时因为调用到的分部视图需要有个隐藏域.然后因为当我们第一次调用分部视图时,是用 @Html.Partial("DetailDataPart")在主视图里把它嵌进去主 ...

  8. JavaScript,ajax与springboot之间的传参方式

    Springboot:@PostMapping("/mDelTest")public String mDelTest (@RequestBody List<String> ...

  9. node跨域方法

    第一种:jsonp 参看用nodejs实现json和jsonp服务 第二种:res.wirteHeadnode部分 var http = require('http') var url = requi ...

  10. Spring源码阅读笔记04:默认xml标签解析

    上文我们主要学习了Spring是如何获取xml配置文件并且将其转换成Document,我们知道xml文件是由各种标签组成,Spring需要将其解析成对应的配置信息.之前提到过Spring中的标签包括默 ...