https://blog.csdn.net/wwwdc1012/article/details/72814642
慕課網(wǎng)《強(qiáng)力django+殺手級(jí)xadmin 打造上線標(biāo)準(zhǔn)的在線教育平臺(tái)》 學(xué)習(xí)筆記
本章主要內(nèi)容:
- 通過(guò)xadmin結(jié)合第4章設(shè)計(jì)的model快速的搭建一套完整的后臺(tái)管理系統(tǒng);
- 本章首先介紹django admin的簡(jiǎn)單使用畅姊, 然后引出xadmin森缠,在安裝xadmin之后將model注冊(cè)到xadmin中鞋喇, 最后完成xadmin的全局配置
django admin 的簡(jiǎn)單使用
這里寫圖片描述
- 更改語(yǔ)言和時(shí)區(qū)
在settings中更改
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai' # 時(shí)區(qū)
USE_TZ = False # 使用本地時(shí)間馏颂,而不是UTC時(shí)間
-
注冊(cè)模型
這里寫圖片描述 簡(jiǎn)單操作
更加強(qiáng)大的xadmin
github.io:http://sshwsfc.github.io/xadmin/
pip安裝
pip install xadmin
這里寫圖片描述
源碼安裝(最新,新特性)
將xadmin注冊(cè)到settings中
'xadmin',
'crispy_forms',
- 修改項(xiàng)目的urls.py贱鼻,替換默認(rèn)的admin
import xadmin
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls),
]
- 設(shè)置pycharm文件模板
這里寫圖片描述
-
在每個(gè)app中新建adminx.py文件喻奥,在此處注冊(cè)app的model
- list_display 展示
- search_fields 搜索
- list_filter 過(guò)濾
詳細(xì)參考xadmin文檔:https://xadmin.readthedocs.io/en/latest/quickstart.html
# -*- coding: utf-8 -*-
__author__ = 'bobby'
__date__ = '2016/10/25 21:07'
import xadmin
from xadmin import views
from xadmin.plugins.auth import UserAdmin
from xadmin.layout import Fieldset, Main, Side, Row
from django.utils.translation import ugettext as _
from .models import EmailVerifyRecord, Banner, UserProfile
class UserProfileAdmin(UserAdmin):
def get_form_layout(self):
if self.org_obj:
self.form_layout = (
Main(
Fieldset('',
'username', 'password',
css_class='unsort no_title'
),
Fieldset(_('Personal info'),
Row('first_name', 'last_name'),
'email'
),
Fieldset(_('Permissions'),
'groups', 'user_permissions'
),
Fieldset(_('Important dates'),
'last_login', 'date_joined'
),
),
Side(
Fieldset(_('Status'),
'is_active', 'is_staff', 'is_superuser',
),
)
)
return super(UserAdmin, self).get_form_layout()
class BaseSetting(object):
enable_themes = True
use_bootswatch = True
class GlobalSettings(object):
site_title = "慕學(xué)后臺(tái)管理系統(tǒng)"
site_footer = "慕學(xué)在線網(wǎng)"
# menu_style = "accordion"
class EmailVerifyRecordAdmin(object):
list_display = ['code', 'email', 'send_type', 'send_time']
search_fields = ['code', 'email', 'send_type']
list_filter = ['code', 'email', 'send_type', 'send_time']
model_icon = 'fa fa-address-book-o'
class BannerAdmin(object):
list_display = ['title', 'image', 'url', 'index', 'add_time']
search_fields = ['title', 'image', 'url', 'index']
list_filter = ['title', 'image', 'url', 'index', 'add_time']
# from django.contrib.auth.models import User
# xadmin.site.unregister(User)
xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
xadmin.site.register(Banner, BannerAdmin)
# xadmin.site.register(UserProfile, UserProfileAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)
這里寫圖片描述
xadmin的全局配置
- users 的adminx.py里面
from xadmin import views
# 基本的修改
class BaseSetting(object):
enable_themes = True # 打開主題功能
use_bootswatch = True #
# 針對(duì)全局的
class GlobalSettings(object):
site_title = "慕學(xué)后臺(tái)管理系統(tǒng)" # 系統(tǒng)名稱
site_footer = "慕學(xué)在線網(wǎng)" # 底部版權(quán)欄
# menu_style = "accordion" # 將菜單欄收起來(lái)
# 注冊(cè),注意一個(gè)是BaseAdminView赖欣,一個(gè)是CommAdminView
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)
-
修改菜單欄的名稱屑彻,需要修改兩個(gè)地方
這里寫圖片描述
這里寫圖片描述
-
最終結(jié)果
這里寫圖片描述