後臺管理在開發中能夠給咱們提供很大的便利,django自帶了一個後臺管理admin,不過還有一個xadmin比django自帶的好用一些,功能更增強大,爲模型提供了版本控制,能夠回滾數據。django中權限主要靠六表實現,首先是基礎的user、group、permission三表,而後分別是user與group的多對多關係表、group與permission的多對多關係表,最後django特有的user與permission的多對多關係表。django基於用戶user、組group、權限permission三張表的關係,一共六張表來實現權限管理。python
xadmin裏面提供了權限的管理,並且使用很簡單。git
1. 安裝xadmingithub
由於xadmin是基於Pillow模塊的,因此須要先安裝Pillow模塊:數據庫
# 安裝Pillow模塊 pip install Pillow # 安裝xadmin第一種方式 pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 # 安裝xadmin第二種方式 pip install xadmin
1.2 在配置的APP中註冊xadmindjango
INSTALLED_APPS = [ # ... # xamin主體模塊 'xadmin', # 渲染表格模塊 'crispy_forms', # 爲模型經過版本控制,能夠回滾數據 'reversion', ]
1.3 xadmin數據庫遷移app
由於xadmin是有本身的數據庫模型類的,因此須要進行數據庫遷移操做。ssh
python manage.py makemigrations
python manage.py migrate
1.4 在主路由中替換掉adminurl
# xadmin的依賴 import xadmin xadmin.autodiscover() # xversion模塊自動註冊須要版本控制的 Model from xadmin.plugins import xversion xversion.register_models() urlpatterns = [ # 將本來的admin路由改爲如下方式便可 path(r'xadmin/', xadmin.site.urls), ]
1.5 建立超級用戶spa
# 在項目根目錄下的終端 python manage.py createsuperuser # 帳號密碼設置(隨意設置):admin | admin
1.6 版本控制
# xadmin全局配置 import xadmin from xadmin import views class GlobalSettings(object): """xadmin的全局配置""" site_title = "海賊學城" # 設置站點標題 site_footer = "海賊王有限公司" # 設置站點的頁腳 menu_style = "accordion" # 設置菜單摺疊 xadmin.site.register(views.CommAdminView, GlobalSettings)
配置前:
利用以上配置後,在項目的配置文件中修改時區與語言設置以下:
# 將英文改成中文 LANGUAGE_CODE = 'zh-hans' # 設定時區 TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True
最終顯示以下:
1.7 在adminx.py中註冊model
from . import models # 註冊 xadmin.site.register(models.模型表名)
同時模型表中字段能夠增長verbose_name屬性,表示後臺管理時顯示的名字。
1.8
# APP下的__init__.py default_app_config = "home.apps.HomeConfig" # APP下的apps.py from django.apps import AppConfig class HomeConfig(AppConfig): name = 'home' verbose_name = '個人首頁'