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

您的位置:首頁技術(shù)文章
文章詳情頁

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

瀏覽:4日期:2022-06-21 11:25:07
十八、Django 后臺(tái)模型屬性篇

繼續(xù)在之前的項(xiàng)目中進(jìn)行代碼的編碼,首先要回憶一下通過 createsuperuser 命令創(chuàng)建的管理員賬號(hào),如果忘記了,需要重新創(chuàng)建一個(gè)。

本篇博客涉及的代碼都在 admin.py 文件中,如果你首次打開本篇文章,請(qǐng)翻看本文結(jié)尾出的目錄大綱,可以再次學(xué)習(xí)。

為了便于學(xué)習(xí),提前在 models.py 中新增一個(gè)類,代碼如下:

from django.db import modelsclass MyCenter(models.Model): pass18.1 在 admin 中注冊(cè)模型

為了讓 Django 能對(duì) models.py 文件中的類進(jìn)行管理操作,需要先注冊(cè)模型。

把上文提及的 MyCenter 模型進(jìn)行注冊(cè),此時(shí) admin.py 文件的代碼如下:

from django.contrib import adminfrom .models import MyCenterclass MyCenterAdmin(admin.ModelAdmin): passadmin.site.register(MyCenter, MyCenterAdmin)

注冊(cè)成功的結(jié)果就是在后臺(tái)頁面,可以看到對(duì)模型的操作入口。

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

其它注冊(cè)方式因?yàn)樯鲜?MyCenterAdmin 沒有實(shí)現(xiàn)任何功能,所以可以省略掉。修改代碼如下:

from django.contrib import adminfrom .models import MyCenteradmin.site.register(MyCenter)

同樣可以使用裝飾器達(dá)到相同的效果。

from django.contrib import adminfrom .models import MyCenter@admin.register(MyCenter)class MyCenterAdmin(admin.ModelAdmin): pass18.2 Model.Admin 類提供的屬性

在上文你已經(jīng)看到了,admin.py 文件中的類默認(rèn)繼承自 Model.Admin,既然繼承自它,那接下來要掌握的就是它給我們提供的屬性內(nèi)容了。

工作開始前,我們先將 admin.py 文件中的代碼進(jìn)行修改,主要為了便于頁面展示。

models.py

from django.db import modelsfrom django.contrib.auth.models import Userclass Customer(models.Model): # 自增主鍵 _id = models.AutoField(primary_key=True) name = models.CharField(max_length=20, verbose_name='客戶名') mobile = models.IntegerField(default=0, verbose_name='手機(jī)號(hào)碼')class Score(models.Model): # 自增主鍵 _id = models.AutoField(primary_key=True) customer = models.ForeignKey(Customer, on_delete=models.CASCADE) score = models.IntegerField(default=0, verbose_name='分?jǐn)?shù)')

admin.py

from django.contrib import adminfrom .models import Customer@admin.register(Customer)class CustomerAdmin(admin.ModelAdmin): pass

上述內(nèi)容補(bǔ)充完整之后,就可以進(jìn)行后臺(tái)對(duì)數(shù)據(jù)進(jìn)行維護(hù)了。

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

接下來就要學(xué)習(xí)第一個(gè)屬性:date_hierarchy。

18.2.1 date_hierarchy

該屬性用于將時(shí)間列轉(zhuǎn)換為可過濾字段,完成該操作需要在 models.py 中新增好 models.DateField 類型的字段。

create_time = models.DateField(default=timezone.now)

當(dāng)模型發(fā)生變化,需要用下述命令進(jìn)行一下同步。

python manage.py makemigrations scoringpython manage.py migrate

模型變化遷移之后,就可以在 admin.py 中進(jìn)行配置了。

from django.contrib import adminfrom .models import Customer@admin.register(Customer)class CustomerAdmin(admin.ModelAdmin): date_hierarchy = 'create_time'

此時(shí)再運(yùn)行應(yīng)用之后,就可以在 customer 頁面查看到最終結(jié)果了。

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

18.2.2 actions_on_top/actions_on_bottom

控制動(dòng)作條的顯示位置,動(dòng)作即操作。

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

修改 admin.py 文件代碼如下,可以控制動(dòng)作條的展示位置。

@admin.register(Customer)class CustomerAdmin(admin.ModelAdmin): date_hierarchy = 'create_time' # actions_on_top = False actions_on_bottom = True18.2.3 actions_selection_counter

動(dòng)作條后面的計(jì)數(shù)是否展示。當(dāng)其設(shè)置為 False 之后,后面的數(shù)字消失。

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

18.2.4 list_display

該屬性可以控制模型中列表顯示的字段。代碼修改為如下內(nèi)容:

@admin.register(Customer)class CustomerAdmin(admin.ModelAdmin): date_hierarchy = 'create_time' actions_on_top = False actions_on_bottom = True list_display = ['_id', 'name', 'mobile', 'create_time']

最終呈現(xiàn)的數(shù)據(jù)如下:

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

list_display 還可以給字段嵌套一個(gè)函數(shù)。

def warp_name(obj): return f'客戶名:{obj.name}'@admin.register(Customer)class CustomerAdmin(admin.ModelAdmin): date_hierarchy = 'create_time' actions_on_top = False actions_on_bottom = True# warp_name 為函數(shù)名,函數(shù)內(nèi)會(huì)接收一個(gè)對(duì)象 list_display = ['_id', warp_name, 'mobile', 'create_time'] warp_name.short_description = '格式化的名字'

也可以將上述代碼的 warp_name 函數(shù),放置到 CustomerAdmin 內(nèi)部。

@admin.register(Customer)class CustomerAdmin(admin.ModelAdmin): date_hierarchy = 'create_time' actions_on_top = False actions_on_bottom = True def warp_name(self, obj):return f'客戶名:{obj.name}' list_display = ['_id', ’warp_name’, 'mobile', 'create_time'] warp_name.short_description = '格式化名字'

此時(shí)最大的區(qū)別就是 list_display 的列表中自定義的函數(shù)為一個(gè)字符串形式。

默認(rèn)情況下 list_display 的第一項(xiàng)是超鏈接,點(diǎn)擊可以進(jìn)行編輯頁面,可以通過 list_display_links 進(jìn)行設(shè)置。

list_display_links:為 None 表示不顯示任何鏈接; 列表:標(biāo)記哪些需要超鏈接。18.2.5 empty_value_display

空數(shù)據(jù)展示的方式,默認(rèn)空數(shù)據(jù)展示的是 --,使用該屬性之后,可以進(jìn)行自定義設(shè)置。修改 models.py 文件,增加備注列。

class Customer(models.Model): # 自增主鍵 _id = models.AutoField(primary_key=True) name = models.CharField(max_length=20, verbose_name='客戶名') mobile = models.IntegerField(default=0, verbose_name='手機(jī)號(hào)碼') create_time = models.DateField(default=timezone.now) mark = models.CharField(max_length=50, null=True, blank=True)

重新運(yùn)行遷移命令,然后運(yùn)行應(yīng)用,得到如下效果。

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

接下來使用該字段進(jìn)行數(shù)據(jù)的展示,在 admin.py 文件中進(jìn)行設(shè)置。

empty_value_display = ’/’

運(yùn)行之后得到的結(jié)果如下:

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

18.2.6 fields

控制顯示的表單字段與順序組合。例如增加如下代碼之后,核對(duì)結(jié)果如下:

list_display = ['_id', ’warp_name’, 'mobile', 'create_time','mark']fields = ['mobile','name']

Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解

18.2.7 其他要補(bǔ)充的屬性

filter_horizontalfilter_vertical篩選菜單的橫排展示與豎排展示。

list_editable可編輯字段。

list_filter過濾器屬性設(shè)置。

list_per_page每頁顯示的數(shù)據(jù)條數(shù)。

ordering排序字段列表。

paginator分頁類對(duì)象,需要提前引入 django.core.paginator.Paginator。

radio_fields字段在表單中是單選按鈕。

readonly_fields不可編輯字段。

search_fileds列表頁增加的篩選字段。

到此這篇關(guān)于Python Django 后臺(tái)管理之后臺(tái)模型屬性的文章就介紹到這了,更多相關(guān)Python Django 后臺(tái)管理內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 国际学校_国际学校哪个好_国际课程学校-国际学校择校网 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | 芝麻黑-芝麻黑石材厂家-永峰石业 | 酒万铺-酒水招商-酒水代理| 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 许昌奥仕达自动化设备有限公司| SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 广州昊至泉水上乐园设备有限公司 | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | STRO|DTRO-STRO反渗透膜(科普)_碟滤 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 免费网站网址收录网_海企优网站推荐平台 |