前言
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是一樣的