Django基于Models定制Admin后臺實(shí)現(xiàn)過程解析
簡介
效果預(yù)覽
Django自帶一個(gè)Admin后臺, 支持用戶創(chuàng)建,權(quán)限配置和所有模型的增刪改查功能, 只需要一些簡單的配置就可快速得到一個(gè)開箱可用的后臺管理系統(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 models class Category(models.Model): ... class Meta: verbose_name_plural = verbose_name = "分類" # 該模型在后臺顯示的名稱 def __str__(self): # 該模型每一個(gè)實(shí)例顯示其name return self.name class Product(models.Model): ... class Meta: verbose_name_plural = verbose_name = "商品" def __str__(self): return self.name class 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, 將模型注冊到admin應(yīng)用中
from django.contrib import admin from .models import Category, Product, Order, OrderItem admin.site.site_header = 'Django-Shop后臺' admin.site.site_title = 'Django-Shop后臺' class OrderItemInline(admin.TabularInline): # 建立內(nèi)聯(lián)表單, 用于將訂單條目內(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] # 嵌入訂單條目內(nèi)聯(lián)表單
完成!!!
使用演示
添加訂單及訂單條目
訂單列表
注: 本次只簡單實(shí)現(xiàn)了將模型注冊到admin后臺中,以實(shí)現(xiàn)通過admin后臺對模型進(jìn)行增刪改查的基本功能, 其他定制功能/插件及admin頁面定制, 沒有涉及.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 數(shù)據(jù)分析之逐塊讀取文本的實(shí)現(xiàn)
這篇文章主要介紹了Python 數(shù)據(jù)分析之逐塊讀取文本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)為EPUB電子書文件
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)為EPUB電子書文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-06-06opencv+python實(shí)現(xiàn)圖像矯正
這篇文章主要為大家詳細(xì)介紹了opencv+python實(shí)現(xiàn)圖像矯正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08如何通過python代碼根據(jù)模板修改變量生成新yaml文件
有些時(shí)候,需要根據(jù)一個(gè)yaml模板創(chuàng)建多個(gè)yaml文件實(shí)例,我們先寫一個(gè)yaml文件模板,然后通過python代碼修改模板中的變量,存儲為一個(gè)新的yaml文件,需要配合python的庫Template及ymal使用,本文給大家講解的非常詳細(xì),需要的朋友跟隨小編一起看看吧2023-11-11實(shí)例講解Python腳本成為Windows中運(yùn)行的exe文件
在本篇文章里小編給大家分享了關(guān)于Python腳本成為Windows中運(yùn)行的exe文件的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-01-01