django整合xadmin的方法

2021-07-26 03:56:36 字數 1805 閱讀 7918

xadmin是django的乙個第三方的管理後台實現,它的功能比自帶的admin功能更加強大。

xadmin專案在github上的位址為:

xadmin相關文件可以在這裡檢視:

文件上有些地方寫的還是比較簡要,按照上面的步驟做,有時候報錯了可能還不知道什麼原因。這裡簡要總結下自己整合xadmin的方法,我使用的是1.9版的django和2.7的python。

1 使用pip安裝

xadmin專案在github上的文件寫的安裝命令為:

pip install xadmin
pip install django-xadmin
這兩個命令並不是裝的同乙個包,應該是選擇乙個即可。使用pip install xadmin,安裝的版本是xadmin-0.6.1;使用pip install django-xadmin安裝的話,是django-xadmin-0.5.0。但不要兩個都安裝,可能會報錯的。這裡我使用的是pip install xadmin命令安裝。

...'xadmin',

'crispy_forms',

'reversion',

...)

直接參考這個配置新增上面三個應用的話,會報錯找不到reversion模組。因為crispy_forms在安裝xadmin的時候是一起被安裝了,但是reversion需要額外安裝一下

pip install django-reversion
在新增應用後,需要重新makemigrations和migrate一下,以生成對應所需的資料庫表。

2)urls.py檔案

urls裡面要新增xadmin的匹配,示例如下:

from django.conf.urls import patterns, include, url

from xadmin.plugins import xversion

import xadmin

#version模組自動註冊需要版本控制的 model

xversion.register_models()

xadmin.autodiscover()

urlpatterns = [

...url(r'xadmin/', include(xadmin.site.urls)),

]

3)adminx.py檔案

django自帶的admin模組使用的是admin.py檔案,xadmin模組的檔名則叫adminx.py。admin模組在配置時使用的引數是admin.modeladmin,xadmin則使用object即可。然後替換admin.site.register為xadmin.site.register。例如:

from django.contrib import admin

from .models import felixprojects

import xadmin

# register your models here.

#class felixprojectsadmin(admin.modeladmin):

class

felixprojectsadmin

(object):

list_display = ('pj_name', 'pj_group', 'pj_category')

xadmin.site.register(felixprojects, felixprojectsadmin)

在整合xadmin之後,admin模組其實就可以不要了,可以將原admin的**刪掉。

Django後台xadmin配置

pip install git git import xadmin from django.urls import path xadmin.autodiscover model自動註冊 from xadmin.plugins import xversion xversion.register mod...

django 簡單使用xadmin

設定xadmin 在應用的urls.py中匯入xadmin 新增url path xadmin xadmin.site.urls 資料庫遷移 生成資料庫執行檔案 python manage.py makemigrations 資料庫遷移 python manage.py migrate 設定超級管理...

django的xadmin的全域性配置

全站的配置放在users 的adminx下 定義乙個basesetting的類 設定全域性變數 主題 class basesetting object 無法使用 enable themes true 後台的主題功能,xadmin預設是關掉的,所以要開啟 use bootswatch true 然後把...