Django基于Models定制Admin后臺(tái)實(shí)現(xiàn)過(guò)程解析
簡(jiǎn)介
效果預(yù)覽

Django自帶一個(gè)Admin后臺(tái), 支持用戶創(chuàng)建,權(quán)限配置和所有模型的增刪改查功能, 只需要一些簡(jiǎn)單的配置就可快速得到一個(gè)開(kāi)箱可用的后臺(tái)管理系統(tǒng)
操作步驟
1. 更改設(shè)置,使用中文/亞洲時(shí)區(qū)
修改項(xiàng)目下django_shop目錄下的settings.py文件修改以下三行
LANGUAGE_CODE = ’zh-hans’TIME_ZONE = ’Asia/Shanghai’USE_L10N = False
添加以下兩行, 已更改時(shí)間顯示格式
DATETIME_FORMAT = ’Y年m月d日 H:i:s’DATE_FORMAT = ’Y年m月d日’
2. 為Models提供中文顯示名稱和實(shí)例名稱#
修改項(xiàng)目shop目錄下的models.py, 為每個(gè)模型添加meta信息和__str__方法
from django.db import modelsclass Category(models.Model): ... class Meta: verbose_name_plural = verbose_name = '分類' # 該模型在后臺(tái)顯示的名稱 def __str__(self): # 該模型每一個(gè)實(shí)例顯示其name return self.nameclass Product(models.Model): ... class Meta: verbose_name_plural = verbose_name = '商品' def __str__(self): return self.nameclass Order(models.Model): ... class Meta: verbose_name_plural = verbose_name = '訂單' def __str__(self): return '{}的訂單'.format(self.username)class OrderItem(models.Model): ... class Meta: verbose_name_plural = verbose_name = '訂單條目' def __str__(self): return '{}訂單條目'.format(self.order)
3. 修改shop目錄下的admin.py, 將模型注冊(cè)到admin應(yīng)用中
from django.contrib import adminfrom .models import Category, Product, Order, OrderItemadmin.site.site_header = ’Django-Shop后臺(tái)’admin.site.site_title = ’Django-Shop后臺(tái)’class OrderItemInline(admin.TabularInline): # 建立內(nèi)聯(lián)表單, 用于將訂單條目?jī)?nèi)嵌入訂單的表單中 model = OrderItem@admin.register(Category)class CategoryAdmin(admin.ModelAdmin): fields = (’name’, ’slug’) list_display = (’name’, ’slug’) list_filter = (’name’, ’slug’)@admin.register(Product)class ProductAdmin(admin.ModelAdmin): fields = (’name’, ’slug’, ’category’, ’price’, ’available’, ’description’) # 詳情表單包含的字段, 支持嵌套分組(將一行展示) list_display = (’name’, ’category’, ’price’, ’available’, ’created’, ’updated’) # 列表顯示字段 list_filter = (’category’, ’available’) # 列表篩選字段 search_fields = (’name’, ) # 列表可搜索字段 list_editable = (’price’, ’available’) # 列表可編輯字段@admin.register(Order)class OrderAdmin(admin.ModelAdmin): fields = (’username’, ’mobile’, ’city’, ’address’, ’pay_status’) list_display = (’username’, ’mobile’, ’city’, ’pay_status’, ’created’, ’updated’) list_filter = (’username’, ’city’, ’pay_status’) search_fields = (’username’, ’mobile’) list_editable = (’pay_status’, ) inlines = [OrderItemInline] # 嵌入訂單條目?jī)?nèi)聯(lián)表單
完成!!!
使用演示
添加訂單及訂單條目

訂單列表

注: 本次只簡(jiǎn)單實(shí)現(xiàn)了將模型注冊(cè)到admin后臺(tái)中,以實(shí)現(xiàn)通過(guò)admin后臺(tái)對(duì)模型進(jìn)行增刪改查的基本功能, 其他定制功能/插件及admin頁(yè)面定制, 沒(méi)有涉及.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. vue 動(dòng)態(tài)給每個(gè)頁(yè)面添加title、關(guān)鍵詞和描述的方法2. HTML基礎(chǔ)知識(shí)總結(jié)3. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對(duì)象4. HTML iframe標(biāo)簽用法案例詳解5. PHP對(duì)接阿里云虛擬號(hào)的實(shí)現(xiàn)(號(hào)碼隱私保護(hù))6. CSS單標(biāo)簽實(shí)現(xiàn)復(fù)雜的棋盤布局7. PHP文件運(yùn)行步驟以及數(shù)據(jù)庫(kù)的連接代碼8. 使用本機(jī)IIS?Express開(kāi)發(fā)Asp.Net?Core應(yīng)用圖文教程9. intellij idea寫Python教程10. HTML-Canvas的優(yōu)越性能以及實(shí)際應(yīng)用

網(wǎng)公網(wǎng)安備