開始
在已有django項目的前提下
安裝django-xadmin
pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
在setting.py進行注冊
INSTALLED_APPS = [
'xadmin',
'crispy_forms',
'reversion',
]
執行命令遷移數據庫
python manage.py migrate
安裝完成!!!
創建app模型類
使用命令新建app
python manage.py startapp [you app name]
在models.py中創建模型類
class Teacher(models.Model):
name = models.CharField(max_length=128, verbose_name='講師名稱')
age = models.IntegerField(verbose_name='講師年齡', default=0)
class Meta:
verbose_name = '機構講師'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
數據庫遷移
python manage.py makemigration
python manage.py migrate
在xadmin中管理
使用xadmin進行管理!
- 因為我們使用的是xadmin而不是admin,所以一定要將admin.py重命名為adminx.py
- 首先引入xadmin和剛剛寫好的模型類
import adminx
from .models import Teacher
對Teacher進行后台功能的集成創建管理類
class TeacherAdmin(object):
"""
list_display 需要展示的字段
show_detail_fields 點擊某字段顯示關聯字段
list_editable 可以直接在顯示頁進行ajax更改的字段
search_fields 可以使用某些字段進行搜索
model_icon 該管理圖標
"""
list_display = ['id', 'name', 'age']
show_detail_fields = ['id']
list_editable = ['name', 'age']
search_fields = list_display
model_icon = "fa fa-graduation-cap"
對模型類和管理類進行注冊實現后台管理
xadmin.site.register(Teacher, TeacherAdmin)
對后台進行一些全局配置
進行配置類的編寫
class BaseSetting(object):
enable_themes = True
use_bootswatch = True
class GlobalSettiongs(object):
"""
設置網站標題和頁腳以及側邊欄是否可折疊
"""
site_title = '一文在線管理后台'
site_footer = 'Powered By yiwen - 2020'
menu_style = 'accordion'
引入xadmin.views並進行注冊
from xadmin import views
xadmin.site.register(views.CommAdminView, GlobalSettiongs)
xadmin.site.register(views.BaseAdminView, BaseSetting)
對xadmin 中model_icon配置更新進行使用
xadmin使用的icons css 為 Font Awesome
-
Font Awesome官網 http://fontawesome.io/
-
https://fontawesome.com/v4.7.0/icons/ 這個頁面列出了icons
-
我們可以下載最新的icons對xadmin進行替換 下載地址 點擊下載
進行資源收錄以便后續替換
- 在settings.py中設置STATIC_ROOT的路徑
- 設置之前記得在根目錄下創建static文件夾
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
- 執行命令進行收錄
python manage.py collectstatic
下載完成並收錄之后對下圖文件進行替換
替換成功之后就可挑選自己喜歡的icon進行使用了
在配置類里填寫即可
最后要記住在settings.py中把STATIC_ROOT注釋掉並添加STATICFILES_DIRS路徑
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
# STATIC_ROOT = os.path.join(BASE_DIR, 'static')