Django 後臺管理xadmin

一. xadmin的使用

  後臺管理在開發中能夠給咱們提供很大的便利,django自帶了一個後臺管理admin,不過還有一個xadmin比django自帶的好用一些,功能更增強大,爲模型提供了版本控制,能夠回滾數據。django中權限主要靠六表實現,首先是基礎的user、group、permission三表,而後分別是user與group的多對多關係表、group與permission的多對多關係表,最後django特有的user與permission的多對多關係表。django基於用戶user、組group、權限permission三張表的關係,一共六張表來實現權限管理。python

  xadmin裏面提供了權限的管理,並且使用很簡單。git

1.1 xadmin的使用流程

  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全局配置:在APP下新建adminx.py版本控制

# 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:home的名字:xadmin頁面上的顯示效果

# APP下的__init__.py
default_app_config = "home.apps.HomeConfig"

# APP下的apps.py
from django.apps import AppConfig
class HomeConfig(AppConfig):
    name = 'home'
    verbose_name = '個人首頁'
相關文章
相關標籤/搜索