版本:django1.9

pip安装部署

pip install xadmin
  • settings.py配置

INSTALLED_APPS中增加2个app:xadmin、crispy_forms

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

源码安装部署

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

解压xadmin-master.zip文件

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

xadmin注册

已在models创建表EmailVerifyRecord

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

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

import xadmin
from .models import EmailVerifyRecord class EmailVerifyRecordAdmin(object):
list_display = ['code', 'email', 'send_type', 'send_time']
search_fields = ['code', 'email', 'send_type']
list_filter = ['code', 'email', 'send_type', 'send_time'] xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

主题应用

adminx.py文件增加

from xadmin import views

class BaseSetting(object):
enable_themes = True
use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)

全局应用

  • 页头和页尾自定义

adminx.py文件增加

from xadmin import views

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

修改前

修改后

adminx.py文件增加

from xadmin import views

class GlobalSetting(object):
site_title = "shhnwangjian后台管理系统"
site_footer = "http://www.cnblogs.com/shhnwangjian/"
menu_style = "accordion" xadmin.site.register(views.CommAdminView, GlobalSetting)

apps.py文件

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

__init__.py文件

default_app_config = "users.apps.UsersConfig"

font awesome自定义

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

下载后覆盖css、fonts目录

在adminx.py文件中引入model_icon

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

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

引用自定义的用户信息

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

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

修改密码,需要更改源码

actions制作案例

adminx.py文件内容

from django.core.exceptions import PermissionDenied
from xadmin.views.base import filter_hook
from xadmin.util import model_format_dict, model_ngettext class zabbixitmes_display_off_action(BaseActionView):
action_name = "zabbixitmes_display_off_action"
description = u'%(verbose_name_plural)s 展示和采集关闭'
model_perm = 'change' @filter_hook
def change_models(self, queryset):
n = queryset.count()
if n:
self.log('change', (u' %(count)d %(items)s. 展示和采集关闭')
% {"count": n, "items": model_ngettext(self.opts, n)})
for obj in queryset:
obj.display_insert = 0
obj.save() def do_action(self, queryset):
if not self.has_change_permission():
raise PermissionDenied
if self.request.POST:
self.change_models(queryset)
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. Shell基础入门

    目录 Shell基础入门 1.什么是Shell? 2.Shell脚本的结构 3.Shell的变量 3.1.自定义环境变量 3.2.普通变量 3.3.位置参数变量 3.4.状态变量 4.条件测试和比较 ...

  2. Arcgis安装要素

    1. ArcGIS安装过程中需将用户名改为计算机名,该计算机名称时需要新建对话框. 2. ArcGIS Server安装过程中要设置ArcGISWebServices用户的读写权限,即设置ASP.NE ...

  3. maven mvn package 打包项目时,出现错误导致失败的解决方法

    解决思路:看报错时在maven打包过程中的哪一步,然后看报错内容,解决报错内容即可,如果是实在不好解决的部分,看看能不能设置不检测,能打包出来就行. 这里是因为mybatis逆向工程插件出现异常所以中 ...

  4. [Luogu5048] [Ynoi2019模拟赛]Yuno loves sqrt technology III[分块]

    题意 长为 \(n\) 的序列,询问区间众数,强制在线. \(n\leq 5\times 10^5\). 分析 考虑分块,暴力统计出整块到整块之间的众数次数. 然后答案还可能出现在两边的两个独立的块中 ...

  5. idea使用actiBPM插件中文乱码

    idea 安转activiti插件后,编辑流程图发现保存后中文乱码,并且idea的字符集(Settings—>Editor—>File Encodings)已经设置为UTF-8,流程图中中 ...

  6. OpenMPI源码剖析:网络通信原理(二) 如何选择网络协议?

    因为比较常用的是 TCP 协议,所以在 opal/mca/btl/tcp/btl_tcp.h 头文件中找到对应的 struct mca_btl_tcp_component_t { mca_btl_ba ...

  7. 访问kubernetes ingress-controller

    ingress-controller可以理解为一套反向代理系统,本身需要暴露端口到集群外部,以便客户端访问. 根据实际使用,给出两种暴露端口的方式,如下: 方案一 拓扑 说明 ingress-cont ...

  8. PAT甲题题解-1032. Sharing (25)-链表水题

    #include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...

  9. 12.19daily_scrum

    本阶段已经过去一半,在周末短暂的休息后,我们将继续完成后续的任务,今日工作情况如下: 小组成员 今日任务 工作时间 李睿琦 网络数据传输应用设计 2 左少辉 主界面功能测试 3 程刚 界面优化学习 4 ...

  10. Linux内核分析——构造一个简单的Linux系统MenuOS

    马悦+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内核源代码简 ...