一、xadmin
官网:http://sshwsfc.github.io/xadmin/
基于Bootstrap3,支持响应式的牛逼后台管理系统,更加符合国人习惯。
二、当前环境
mac+pycharm
python3.6.5
django1.9
三、xadmin在python2.x时代的安装方法
在python2.x时代,安装xadmin是通过如下命令
pip install xadmin
四、xadmin在python3.6.x时代的安装方法
分为在线安装和本地安装
在线安装
在线安装
pip install git+git://github.com/sshwsfc/xadmin.git
但是这种安装方式 ,大多数人会遇到问题。
本地安装 (推荐)
s1、下载xadmin
下载地址:
https://github.com/sshwsfc/xadmin
s2、解压缩,得到xadmin文件夹,复制到项目的extra_apps
解压缩,得到xadmin文件夹
在django中的根目录下创建Python Package,命名为extra_apps(如果不存在此文件夹则创建)
(Python Package是带init文件的,跟普通Package不同)
创建完extra_apps,需要在settings中配置一下extra_apps。设置为可搜索的路径。
import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps')) # 把extra_apps文件夹添加到搜索目录中
把xadmin文件夹复制到extra_apps。
s3、配置xadmin
配置到 INSTALLED_APPS
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'xadmin',
'crispy_forms', # 注意crispy_forms之间是下划线隔开,不是横线
]
修改urls.py的admin
把原来的admin修改为xadmin
import xadmin
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
# url('admin/', admin.site.urls),
url(r'^xadmin/', xadmin.site.urls),
]
s4、迁移
迁移文件
生成迁移
python3 manage.py makemigrations
执行迁移
python3 manage.py migrate
迁移完成后,我们看到数据库多了几张表
至此完成。
(如果报错,请先把原先旧的app里面admin.py里面的注册代码去掉,再试试)
运行一下项目,访问
http://127.0.0.1:8000/xadmin/
即可,记得不要习惯性输入成http://127.0.0.1:8000/admin/
。一字之差。
效果预览
五、如何把model注册到xadmin
在对应的app里面,新建adminx.py
注册代码
import xadmin
from .models import EmailVerifyRecord
# 注册UserProfile 进后台admin
# class UserProfileAdmin(admin.ModelAdmin):
# pass
#
# admin.site.register(UserProfile,UserProfileAdmin)
# xadmin 注册UserProfile 进后台xadmin
class EmailVerifyRecordAdmin(object): # xadmin里的类是继承自object,而传统的admin是继承自 admin.ModelAdmin
pass
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin) # 注意是 xadmin.site ,多了个x
效果
本文完。