前言
django自带的admin后台管理页面有点丑陋,于是网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码。
注意环境搭配:
- django 2.1.2
- xadmin 2.0
- python 3.6
xadmin安装
xadmin在github的源码地址https://github.com/sshwsfc/xadmin,可以用pip安装也可以自己下载后导入到项目中。
这里不推荐pip安装,会有报错。本篇介绍下载xadmin后导入的django项目中的方法。
先在github上下载源码包,由于小编的django版本是2.1版本,下载对应的django2分支代码。
这里不能直接下载master分支(别问是怎么知道的,一把辛酸泪!),版本不匹配,亲人两行泪!
下载了后解压出来,只需要里面的xadmin这一部分内容
在原来的django项目工程下新建一个extra_apps包,把上面的xadmin目录整个放到extra_apps目录下,如下结构
接着在pycharm上把extra_apps包Mark为Sources Root。具体操作方法:extra_apps右键-找到Mark Directory As-选择Sources Root
(要是找不到这个选项,估计是用的盗版pycharm?)
在解压的文件里requirements.txt有列出相关的依赖包,用pip安装
- django-crispy-forms>=1.6.0
- django-import-export>=0.5.1
- django-reversion>=2.0.0
- django-formtools==1.0
- future==0.15.2
- httplib2==0.9.2
- six==1.10.0
添加xadmin配置
在项目setting.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', # 管理静态文件框架
'hello', # 应用app
'xadmin', # 新添加
'crispy_forms', # 新添加
]
找到BASE_DIR这行,添加两行代码,修改前代码如下
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
修改后的代码如下
# 修改后
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'))
urls.py中配置路由
from django.contrib import admin
import xadmin
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls), # xadmin
url(r'^admin/', admin.site.urls), # 原来的admin
]
setting.py设置成中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
之后执行 makemigrations 和migrate,然后runserver启动服务
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
创建管理员用户,如果之前admin后台创建过,下面这步可以省略,账号可以通用
python manage.py createsuperuser
打开xadmin后台
在浏览器输入http://localhost:8000/xadmin/地址,就可以打开xadmin的后台了
登录的账户和密码跟之前的admin是一样的