版本:django1.9

pip安装部署

  1. pip install xadmin
  • settings.py配置

INSTALLED_APPS中增加2个app:xadmin、crispy_forms

  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'xadmin',
  9. 'crispy_forms',
  10. ]
  • urls.py配置,xadmin替换admin
  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. import xadmin
  4.  
  5. urlpatterns = [
  6. # url(r'^admin/', admin.site.urls),
  7. url(r'^xadmin/', xadmin.site.urls),
  8. ]
  • 数据库同步
  1. makemigrations
  2. migrate
  • 访问首页

源码安装部署

下载:https://github.com/sshwsfc/xadmin

解压xadmin-master.zip文件

将xadmin-master文件中xadmin目录复制到自己的django项目下

xadmin注册

已在models创建表EmailVerifyRecord

  1. class EmailVerifyRecord(models.Model):
  2. email_choices = (
  3. ('register', u'注册'),
  4. ('forget', u'找回密码'),
  5. )
  6. code = models.CharField(max_length=20, verbose_name=u'验证码')
  7. email = models.EmailField(max_length=50, verbose_name=u'邮箱')
  8. send_type = models.CharField(choices=email_choices, max_length=10, verbose_name=u'验证码类型')
  9. send_time = models.DateTimeField(default=datetime.now, verbose_name=u'发送时间')

在创建的app下创建adminx.py文件

  1. import xadmin
  2. from .models import EmailVerifyRecord
  3.  
  4. class EmailVerifyRecordAdmin(object):
  5. list_display = ['code', 'email', 'send_type', 'send_time']
  6. search_fields = ['code', 'email', 'send_type']
  7. list_filter = ['code', 'email', 'send_type', 'send_time']
  8.  
  9. xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

主题应用

adminx.py文件增加

  1. from xadmin import views
  2.  
  3. class BaseSetting(object):
  4. enable_themes = True
  5. use_bootswatch = True
  6.  
  7. xadmin.site.register(views.BaseAdminView, BaseSetting)

全局应用

  • 页头和页尾自定义

adminx.py文件增加

  1. from xadmin import views
  2.  
  3. class GlobalSetting(object):
  4. site_title = "shhnwangjian后台管理系统"
  5. site_footer = "http://www.cnblogs.com/shhnwangjian/"
  6.  
  7. xadmin.site.register(views.CommAdminView, GlobalSetting)
  • 左侧app中文名称定义和多表紧缩

修改前

修改后

adminx.py文件增加

  1. from xadmin import views
  2.  
  3. class GlobalSetting(object):
  4. site_title = "shhnwangjian后台管理系统"
  5. site_footer = "http://www.cnblogs.com/shhnwangjian/"
  6. menu_style = "accordion"
  7.  
  8. xadmin.site.register(views.CommAdminView, GlobalSetting)

apps.py文件

  1. # -*- coding: utf-8 -*-
  2. from django.apps import AppConfig
  3.  
  4. class UsersConfig(AppConfig):
  5. name = 'users'
  6. verbose_name = u'用户信息'

__init__.py文件

  1. default_app_config = "users.apps.UsersConfig"

font awesome自定义

官网下载:http://fontawesome.io/

下载后覆盖css、fonts目录

在adminx.py文件中引入model_icon

  1. class EmailVerifyRecordAdmin(object):
  2. list_display = ['code', 'email', 'send_type', 'send_time']
  3. search_fields = ['code', 'email', 'send_type']
  4. list_filter = ['code', 'email', 'send_type', 'send_time']
  5. model_icon = 'fa fa-address-book-o'
  6.  
  7. xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

model_icon这个值,在http://fontawesome.io/icons/ 中选中的图标或class内容,如下图

引用自定义的用户信息

如上图目录中xadmin源码中加入下面内容

  1. from django.contrib.auth import get_user_model
  2. User = get_user_model()

修改密码,需要更改源码

actions制作案例

adminx.py文件内容

  1. from django.core.exceptions import PermissionDenied
  2. from xadmin.views.base import filter_hook
  3. from xadmin.util import model_format_dict, model_ngettext
  4.  
  5. class zabbixitmes_display_off_action(BaseActionView):
  6. action_name = "zabbixitmes_display_off_action"
  7. description = u'%(verbose_name_plural)s 展示和采集关闭'
  8. model_perm = 'change'
  9.  
  10. @filter_hook
  11. def change_models(self, queryset):
  12. n = queryset.count()
  13. if n:
  14. self.log('change', (u' %(count)d %(items)s. 展示和采集关闭')
  15. % {"count": n, "items": model_ngettext(self.opts, n)})
  16. for obj in queryset:
  17. obj.display_insert = 0
  18. obj.save()
  19.  
  20. def do_action(self, queryset):
  21. if not self.has_change_permission():
  22. raise PermissionDenied
  23. if self.request.POST:
  24. self.change_models(queryset)
  25. return None

提示:可以参考BaseActionView中的删除DeleteSelectedAction,可以实现xadmin自带的日志记录。用于审计操作者的操作内容。

django xadmin 安装和使用的更多相关文章

  1. django xadmin安装

    安装方式一: 下载xadmin源码文件,下载之后,解压缩,将解压目录中的xadmin文件夹拷贝到项目项目文件中.下载地址:https://codeload.github.com/sshwsfc/xad ...

  2. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  3. 第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块

    第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块 virtualenv简介 1.安装virtuale ...

  4. 第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1

    第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1 1.检查系统是否安装了python [root@192 ~]# rpm -qa ...

  5. 第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6

    第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步 ...

  6. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

    第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...

  7. Django+xadmin打造在线教育平台(二)

    三.xadmin后台管理 3.1.xadmin的安装 django2.0的安装(源码安装方式): https://github.com/sshwsfc/xadmin/tree/django2 把zip ...

  8. Django+xadmin打造在线教育平台(三)

    五.完成注册.找回密码和激活验证码功能 5.1.用户注册 register.html拷贝到templates目录 (1)users/views.py class RegisterView(View): ...

  9. Django+xadmin打造在线教育平台(一)

    目录 在线教育平台(一)      在线教育平台(二) 在线教育平台(三)      在线教育平台(四) 在线教育平台(五)      在线教育平台(六) 在线教育平台(七)      在线教育平台( ...

随机推荐

  1. ScreenToGif 代码分析

    ScreenToGif项目由四个文件夹组成: Files 存放协议文件 GifRecorder 存放gif编码器代码 ScreenToGif 存放主代码 Other 存放Hooktest和Transl ...

  2. Nuxt.js + koa2 入门

    1. nuxt项目初始化 下面是使用 koa 模板方法初始化一个项目,使用该方法需要将 nuxt 的版本降至1.4.2: 官方 https://zh.nuxtjs.org/guide/installa ...

  3. 在git与tortoisegit中使用openSSH与PuTTY

    问题 在使用Git与tortoisegit的时候,指定远程版本库的地址有2种方式: 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什么 ...

  4. CodeFirst从零搭建ASP.NETCore2.0

    没时间介绍了,废话不说先上车 以下所有扯淡都是建立在.NETCore2.0环境已经搭建好 右键解决方案>新建项目> 选择Web>ASP.NETCoreWeb应用程序(.NET Cor ...

  5. DFA化简

    首先是未化简DFA的转换表 NFA状态 DFA状态 a b {0,1,2,4,7} A B C {1,2,3,4,6,7,8} B B D {1,2,4,5,6,7} C B C {1,2,4,5,6 ...

  6. Kaggle入门(一)——Digit Recognizer

    目录 0 前言 1 简介 2 数据准备 2.1 导入数据 2.2 检查空值 2.3 正则化 Normalization 2.4 更改数据维度 Reshape 2.5 标签编码 2.6 分割交叉验证集 ...

  7. 【SE】Week2 : 个人博客作业

    1. 是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: Statement1 :  这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这样的 ...

  8. 读书笔记(chapter5)

    系统调用 5.1与内核通信 1.系统调用在用户空间进程和硬件设备之间添加一个中间层.作用有三个:它为用户空间提供了一种硬件的抽象接口:系统调用保证了系统的稳定和安全:系统调用是用户空间访问内核的唯一手 ...

  9. Linux内核设计(第二周)——操作系统工作原理

    Linux内核设计(第二周)--操作系统工作原理 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  10. 继承 多态 java相关基础知识

    1:静态语句块.构造语句块(就是只有大括号的那块)以及构造函数的执行顺序 例子: class HelloA { public HelloA() { System.out.println("H ...