电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Django admin組件的使用

瀏覽:3日期:2024-09-20 10:21:18

admin

admin 是 Django 自帶的后臺管理組件,你可以在 admin 中執行增刪改查等操作。

它以可視化的方式讓你來操縱模型表,十分的便捷。

基本使用數據準備

如下,在 app01 中有一個這樣的模型表:

from django.db import models# Create your models here.class User(models.Model): user_id = models.AutoField(primary_key=True, verbose_name='用戶編號') user_name = models.CharField(max_length=32, verbose_name='用戶名') user_gender = models.BooleanField( choices=([0, 'male'], [1, 'female']), verbose_name='用戶性別') user_introduction = models.TextField( max_length=1024, null=True, blank=True, verbose_name='用戶簡介') def __str__(self): return self.user_name

創建用戶

當運行了數據庫遷徙命令后,需要創建一個可登錄 admin 進行管理的超級賬戶。

python manage.py createsuperuser

它會提示你輸入用戶名,以及密碼,密碼不能少于八位。

可以選填郵箱。

注冊admin

管理員用戶創建完成后,在 app01 應用下進行注冊。

from django.contrib import adminfrom .models import *admin.site.register(User)

接下來打開 admin ,輸入賬戶名與密碼后,就可以看到這張表。

Django admin組件的使用

接下來就可以對該表進行增刪改查了。

Django admin組件的使用

深度配置

models參數

在創建模型表時,可以對字段添加一些與 admin 相關的參數。

參數 描述 verbose_name Admin中顯示的字段名稱 blank Admin中進行添加或編輯時,該字段是否可以為空 editable Admin中是否可編輯該字段 help_text Admin中的幫助信息 choices Admin中選擇框顯示的內容

在這里的 blank 與 verbose_name 以及 choices 都比較常用。

除了在模型表的字段上進行配置外,也可以在該表下定制元信息。這其中有關于該表在 Admin 中的信息顯示,如下所示:

class User(models.Model):字段 = 類型(條件)字段 = 類型(條件) class Meta: verbose_name = 'Admin中顯示的表名'

admin配置

如果要對一個注冊的表進行深度配置,可在 admin.py 中對它進行。

常用的配置方式有兩種,如下所示:

from django.contrib import admin# 裝飾器注冊@admin.register(User)class UserConfig(admin.ModelAdmin):配置項.... # 使用siteclass UserConfig(admin.ModelAdmin):配置項....admin.site.register(CustomAdmin, UserConfig) # 應用配置項

下面是 admin 深度配置的一些常用選項。

from django.contrib import adminfrom .models import *# Register your models here.class UserConfig(admin.ModelAdmin): # 自定義字段,作用顯示 def edit(self): return '編輯'# 以下是自定義admin的使用 # 添加數據模板頁 # add_form_template = None # 修改數據的模板頁 # change_form_template = None # 修改多條數據的模板頁 # change_list_template = None # 刪除確認信息模板頁 # delete_confirmation_template = None # 刪除關聯數據的確認頁 # delete_selected_confirmation_template = None # 修改歷史的模板頁 # object_history_template = None # 彈出框模板頁 # popup_response_template = None # 不支持多對多字段,展示表中的字段。 list_display = ['user_id', 'user_name','user_gender',edit] # 點擊字段可進入change頁面 list_display_links = [edit] # 過濾篩選,支持各種關系 list_filter = ['user_gender'] # 支持在頁面修改的字段,與list_display_links有沖突 list_editable = ['user_name'] # 模糊搜索,可以按照編號、名字搜索.或關系 search_fields = ['user_id','user_name']# 用于和action定制項做批處理 def patch_init(self,request,queryset): ''' queryset:選中的字典 ''' # 選中的用戶全改為男性... queryset.update(user_gender=False) # 添加描述 patch_init.short_description = '批量修改性別' actions = [patch_init] admin.site.register(User)

以下是配置完成后的樣式,自行對應配置項進行配置后查看即可。

Django admin組件的使用

中文顯示

如果想要在 admin 中進行中文顯示,則可以在全局的 settings.py 中配置語言。

# LANGUAGE_CODE = ’en-us’LANGUAGE_CODE = ’zh-Hans’ # 中文顯示

執行流程

在啟動 django 項目時,第一步會去 settings 中導入各種模塊。

INSTALLED_APPS = [ ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, ’app01.apps.App01Config’,]

查看 admin 源碼 from django.contrib import admin ,它下面有這樣的一個函數,該函數的作用就是將所有 app 下的 admin 都會做一次導入。

def autodiscover(): autodiscover_modules(’admin’, register_to=site)

我們知道,在模塊導入時,會運行該模塊中的代碼,那么在 admin.site 進行注冊時,實際上是應用單例模式進行注冊。

使用 admin.site.register() 實際上都是在使用單例對象下的方法,并不會重復生成多個對象。

class AdminSite(object): def __init__(self): self._registry = {} def register(self, model, admin_class = None): # 設置配置類 if not admin_class: admin_class = ModelAdmin self._registry[model] = admin_class(model, self)site = AdminSite() # 最后一行

admin 中單例對象的應用也非常簡單,它是以模塊的方式應用單例對象,因為我們知道模塊只會執行一次。

如下所示:

# f1.py 模塊class Test(object):def __init__(self,name):self.name = namet1 = Test('測試')

當其他文件進行多次導入時,只會導入一次,此時使用的 t1 永遠都是單例對象,不會重復實例化:

import f1f1.t1()

以上就是Django admin組件的使用的詳細內容,更多關于Django admin組件的資料請關注好吧啦網其它相關文章!

標簽: Django
相關文章:
主站蜘蛛池模板: 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 山东彩钢板房,山东彩钢活动房,临沂彩钢房-临沂市贵通钢结构工程有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科| 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 成都思迪机电技术研究所-四川成都思迪编码器 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 亿诺千企网-企业核心产品贸易| RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 模切之家-专注服务模切行业的B2B平台!| 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 旋振筛_不锈钢旋振筛_气旋筛_旋振筛厂家—新乡市大汉振动机械有限公司 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 重庆中专|职高|技校招生-重庆中专招生网 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 |