【tips】xadmin - django第三方后台管理系统
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)
站点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 控制菜单的图标
最后附上一个楼主安装遇到的一个小问题和解决办法:
问题: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/
一身污浊、自得其乐

【tips】xadmin - django第三方后台管理系统的更多相关文章
- Django的后台管理系统Admin(5)
Django的后台管理系统就是为了方便管理员管理网站,所以django自带了一个后台管理系统,接下来记录一下如何使用这个后台的管理系统. 首先我们要进入后台管理系统,就要有一个管理员的账号,先来创建有 ...
- 4、Django实战第4天:xadmin快速搭建后台管理系统
Django默认为我们提供了后台管理系统admin, urls.py中配置的第一条就是访问后台管理系统admin的 urlpatterns = [ url(r'^admin/', admin.site ...
- xadmin快速搭建后台管理系统
一.xadmin的特点: 1.基于Bootstrap3:Xadmin使用Bootstrap3.0框架精心打造.基于Bootstrap3,Xadmin天生就支持在多种屏幕上无缝浏览,并完全支持Boots ...
- admin快速搭建后台管理系统
一.基于admin后台管理系统的特点: 权限管理:权限管理是后台管理系统必不可少的部分,拥有权限管理,可以赋予用户增删改查表权限(可以分别赋予用户对不同的表有不同的操作权限): 前端样式少:后台管理主 ...
- xadmin快速搭建一个后台管理系统
环境:python3.5.2 ,django 2.0 ,xadmin2.0 Firsttly, 到 https://github.com/sshwsfc/xadmin/tree/django2上下载源 ...
- Django2.1.5使用xadmin打造适合国人的后台管理系统
python做web开发的话,flask.django是比较火的框架了,django是一个比较大的框架,也是一个快速开发利器.但是,django自带的后台admin不太好看,也不太符合我们国人的习惯, ...
- 实现django admin后台到xadmin后台的转变
虽然不做前端,还是喜欢好看的东西~.~ 之前同事估计也是功能实现没空管这个后台,前段时间闲的,稍微改了下外貌,前后对比下: Python3.5+Django1.9.7+Xadmin0.6.1 步骤如下 ...
- django入门5使用xadmin搭建管理后台
环境搭建: pip install django==1.9.8 pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl pip install f ...
- xadmin开发后台管理系统常见问题
Xadmin开发后台管理系统 关注公众号"轻松学编程"了解更多. 添加小头像 https://blog.csdn.net/qq_34964399/article/details/8 ...
随机推荐
- bzoj1770: [Usaco2009 Nov]lights 燈(折半搜索)
1770: [Usaco2009 Nov]lights 燈 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1153 Solved: 564[Submi ...
- AutoCAD C# 利用反射导出所注册的命令
主函数导出某一程序集AutoCAD 注册命令 /// <summary> ///提取所有的命令 /// </summary> /// <param name=" ...
- (DP)51NOD 1118 机器人走方格
M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果. Input 第1行,2个数M,N,中间用空格隔开.( ...
- c++ strcmp函数
用法:加头文件 #include <string.h> 功能:比较字符串s1和s2. 一般形式:strcmp(字符串1,字符串2) 返回值: 当s1<s2时,返回值<0 当s1 ...
- Linux之线程相关命令及常用命令
查进程 top命令:查看系统的资源状况.#top top -d 10 //指定系统更新进程的时间为10秒 ps:查看当前用户的活动进程.#ps -A ps命令查找与进程相关的PID号: ps ...
- 离散化+BFS HDOJ 4444 Walk
题目传送门 /* 题意:问一个点到另一个点的最少转向次数. 坐标离散化+BFS:因为数据很大,先对坐标离散化后,三维(有方向的)BFS 关键理解坐标离散化,BFS部分可参考HDOJ_1728 */ # ...
- 浅谈css的行内类型标签和块级标签
常用标签的行内类型标签有:a.span.img:块级标签有:div.p.h1~6.ul.ol.li.dl.dt.dd. 行内类型标签的特征:标签的大小由标签的内容决定,不能设置width和height ...
- Spark学习之编程进阶——累加器与广播(5)
Spark学习之编程进阶--累加器与广播(5) 1. Spark中两种类型的共享变量:累加器(accumulator)与广播变量(broadcast variable).累加器对信息进行聚合,而广播变 ...
- oa系统部署
1.配置java环境变量 新建:JAVA_HOME C:\Program Files\Java\jdk1.6.0_45 path添加 C:\Program Files\Java\jdk1.6.0_ ...
- 并发编程学习笔记(13)----ConcurrentLinkedQueue(非阻塞队列)和BlockingQueue(阻塞队列)原理
· 在并发编程中,我们有时候会需要使用到线程安全的队列,而在Java中如果我们需要实现队列可以有两种方式,一种是阻塞式队列.另一种是非阻塞式的队列,阻塞式队列采用锁来实现,而非阻塞式队列则是采用cas ...