Django項目(二、后臺管理系統(tǒng)的設(shè)計)

Django有一套自帶的后臺管理系統(tǒng), 比如我們可以直接建立超級用戶:

createsuperuser

Django的后臺系統(tǒng)默認(rèn)是英文的, 如果我們想改成中文的, 可以在settings.py里配置:

#settings.py

...
#中文
LANGUAGE_CODE = 'zh-hans'
#時區(qū)
TIME_ZONE = 'Asia/Shanghai'
#使用本地時間
USE_TZ = False

Django的后臺也會需要一些表, 這些表的models一般都是在APP目錄下的admin.py進(jìn)行設(shè)計的, 如果我們想把users這個app中設(shè)計的user注冊到后臺, 我們需要在users/admin.py中做如下處理:

#users/admin.py
from django.contrib import admin

from .models import UserProfile


class UserProfileAdmin(admin.ModelAdmin):
    pass

admin.site.register(UserProfile,UserProfileAdmin)

這樣我們的后臺頁面就多了一張用戶表, 而且是有用戶擴(kuò)展信息的。

引入DjangoUeditor

為了給我們的文章添加一個富文本編輯器, 我們使用DjangoUeditor, 我們在官網(wǎng)或者git上下載下對應(yīng)版本的DjangoUeditor后, 在項目目錄下新建一個文件夾extra_apps, 將DjangoUeditor文件夾放入該目錄下, 在settings.py中進(jìn)行設(shè)置:

#settings.py

...
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
INSTALLED_APPS = [
    ...
    'DjangoUeditor',
]

另外在urls.py中也需要進(jìn)行設(shè)置:

#urls.py
...

urlpatterns = [
    ...
    url(r'^ueditor/',include('DjangoUeditor.urls')),
]

最后, 當(dāng)需要使用對應(yīng)的models時需要使用以下設(shè)置:

#models.py
...
from DjangoUeditor.models import UEditorField

class XXmodels(models.Model):
    ...
    content = UEditorField(default='', blank=True, width=1000, imagePath='uploads/blog/images/',filePath='uploads/blog/files/', verbose_name='文章內(nèi)容')

引入強(qiáng)大的Xadmin

Xadmin是基于Django的admin擴(kuò)展我們的后臺功能的管理系統(tǒng),
安裝方式如下:

pip install xadmin

安裝成功后, 我們需要在settings.py中注冊兩個APP:

#settings.py
...
INSTALLED_APPS = [
    ...
    'xadmin',
    'crispy_forms'
]

之后, 我們需要在urls.py中修改admin的映射關(guān)系:

#urls.py
from django.conf.urls import url
from django.contrib import admin
import xadmin

urlpatterns = [
    url(r'^xadmin/',xadmin.site.urls),
]

另外, users/admin.py中也不能用默認(rèn)的admin的注冊方式了:

#users/admin.py
from django.contrib import admin

實際上, 我們需要在每個app下新建一個adminx.py文件:

#users/adminx.py

import xadmin
from .models import EmailVerifyRecord

class EmailVerifyRecordAdmin(object):
    #后臺展示哪些字段, 可以不設(shè)置
    list_display = ['code','email']
    #后臺在哪些字段中進(jìn)行搜索
    search_fields = ['']

xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)

之后使用makemigrations和migrate同步xadmin的表結(jié)構(gòu), 之后重啟系統(tǒng)就可以。

Xadmin的一些設(shè)置

xadmin有一些用戶可以自定義的設(shè)置。

#users/adminx.py
...
from xadmin import views

#使用主題功能,變更系統(tǒng)配色
class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True
    
xadmin.site.register(views.BaseAdminView,BaseSetting)


class GlobalSettings(object):
    #修改角標(biāo)
    site_title = "終極奧義"
    site_footer = "眼君數(shù)據(jù)"
    #左側(cè)菜單欄收縮
    menu_style = "accordion"
    
xadmin.site.register(views.CommAdminView,GlobalSettings)

每一個APP都有一個apps.py文件, xadmin可以設(shè)置系統(tǒng)中APP的名稱:

#users/apps.py
from django.apps import AppConfig
class UserConfig(AppConfig):
    name = 'users'
    verbose_name = '用戶信息'
#users/__init__.py
default_app_config = "users.apps.UserConfig"
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容