国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

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

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

本篇博客涉及的代碼都在 admin.py 文件中,如果你首次打開(kāi)本篇文章,請(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)頁(yè)面,可以看到對(duì)模型的操作入口。

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

其它注冊(cè)方式因?yàn)樯鲜?MyCenterAdmin 沒(méi)有實(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,既然繼承自它,那接下來(lái)要掌握的就是它給我們提供的屬性內(nèi)容了。

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

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)模型屬性詳解

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

18.2.1 date_hierarchy

該屬性用于將時(shí)間列轉(zhuǎn)換為可過(guò)濾字段,完成該操作需要在 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 頁(yè)面查看到最終結(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)行編輯頁(yè)面,可以通過(guò) 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)模型屬性詳解

接下來(lá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過(guò)濾器屬性設(shè)置。

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

ordering排序字段列表。

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

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

readonly_fields不可編輯字段。

search_fileds列表頁(yè)增加的篩選字段。

到此這篇關(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)文章:
主站蜘蛛池模板: 日韩欧美日本 | 亚洲一区2区三区4区5区 | 免费视频亚洲 | 成人影院人人免费 | 高清在线亚洲精品国产二区 | 亚洲综合一区二区三区 | 99久在线 | 国产免费爽爽视频免费可以看 | 中文字幕播放 | 国产欧美日本在线观看 | 一级特黄爽大片刺激 | 亚洲国产成人在线 | 日本一级毛片中文字幕 | 亚洲国产经典 | 国产一区二区三区影院 | 国产不卡在线观看视频 | 一本色道久久88亚洲精品综合 | 视频一区在线 | 高清性色生活片欧美在线 | 国产a网| 亚州国产视频 | 成 人 黄 色 视频播放16 | xxxxfreexxxx人妖 | 久久国产精品久久国产精品 | 亚洲免费在线观看 | 草草视频在线观看 | 曰韩一级| 全黄性高视频 | 欧美三级做爰全过程 | 免费的三级毛片 | 国产午夜精品久久久久免费视 | 欧美日韩色| 国产亚洲美女精品久久 | 欧美一区二区三区男人的天堂 | 国产大秀视频 | 欧美一级免费观看 | 亚洲国语 | 国产亚洲小视频 | 色天使色婷婷在线影院亚洲 | 国产日韩欧美一区 | 亚洲欧美日韩色 |