最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Django 后臺管理之后臺模型屬性詳解

 更新時間:2021年04月25日 10:40:50   作者:夢想橡皮擦  
這篇文章主要介紹了Python Django 后臺管理之后臺模型屬性,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

十八、Django 后臺模型屬性篇

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

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

為了便于學習,提前在 models.py 中新增一個類,代碼如下:

from django.db import models

class MyCenter(models.Model):
    pass

18.1 在 admin 中注冊模型

為了讓 Django 能對 models.py 文件中的類進行管理操作,需要先注冊模型。

把上文提及的 MyCenter 模型進行注冊,此時 admin.py 文件的代碼如下:

from django.contrib import admin
from .models import MyCenter

class MyCenterAdmin(admin.ModelAdmin):
    pass

admin.site.register(MyCenter, MyCenterAdmin)

注冊成功的結果就是在后臺頁面,可以看到對模型的操作入口。

Python Django 后臺管理也要好好學之后臺模型屬性

其它注冊方式
因為上述 MyCenterAdmin 沒有實現(xiàn)任何功能,所以可以省略掉。修改代碼如下:

from django.contrib import admin
from .models import MyCenter

admin.site.register(MyCenter)

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

from django.contrib import admin
from .models import MyCenter


@admin.register(MyCenter)
class MyCenterAdmin(admin.ModelAdmin):
    pass

18.2 Model.Admin 類提供的屬性

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

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

models.py

from django.db import models
from django.contrib.auth.models import User

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="手機號碼")


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="分數(shù)")

admin.py

from django.contrib import admin
from .models import Customer


@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    pass

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

Python Django 后臺管理也要好好學之后臺模型屬性

接下來就要學習第一個屬性:date_hierarchy

18.2.1 date_hierarchy

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

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

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

python manage.py makemigrations scoring
python manage.py migrate

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

from django.contrib import admin
from .models import Customer

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"

此時再運行應用之后,就可以在 customer 頁面查看到最終結果了。

Python Django 后臺管理也要好好學之后臺模型屬性

18.2.2 actions_on_top/actions_on_bottom

控制動作條的顯示位置,動作即操作。

Python Django 后臺管理也要好好學之后臺模型屬性

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

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"
    # actions_on_top = False
    actions_on_bottom = True

18.2.3 actions_selection_counter

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

Python Django 后臺管理也要好好學之后臺模型屬性

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 后臺管理也要好好學之后臺模型屬性

list_display 還可以給字段嵌套一個函數(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)會接收一個對象
    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 = "格式化名字"

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

默認情況下 list_display 的第一項是超鏈接,點擊可以進行編輯頁面,可以通過 list_display_links 進行設置。

  • list_display_links:為 None 表示不顯示任何鏈接;
  • 列表:標記哪些需要超鏈接。

18.2.5 empty_value_display

空數(shù)據(jù)展示的方式,默認空數(shù)據(jù)展示的是 --,使用該屬性之后,可以進行自定義設置。
修改 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="手機號碼")
    create_time = models.DateField(default=timezone.now)
    mark = models.CharField(max_length=50, null=True, blank=True)

重新運行遷移命令,然后運行應用,得到如下效果。

Python Django 后臺管理也要好好學之后臺模型屬性

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

empty_value_display = '/'

運行之后得到的結果如下:

Python Django 后臺管理也要好好學之后臺模型屬性

18.2.6 fields

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

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

Python Django 后臺管理也要好好學之后臺模型屬性

18.2.7 其他要補充的屬性

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

list_editable
可編輯字段。

list_filter
過濾器屬性設置。

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

ordering
排序字段列表。

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

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

readonly_fields
不可編輯字段。

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

到此這篇關于Python Django 后臺管理之后臺模型屬性的文章就介紹到這了,更多相關Python Django 后臺管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用Python制作PPT的完整步驟

    利用Python制作PPT的完整步驟

    這篇文章主要給大家介紹了關于如何利用Python制作PPT的相關資料,主要利用的是python-pptx庫,我們可以通過寫腳本,來定時執(zhí)行更新ppt內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Python pyecharts繪制柱狀圖

    Python pyecharts繪制柱狀圖

    這篇文章主要介紹了Python pyecharts繪制柱狀圖,文章介紹的柱狀/條形圖,通過柱形的高度/條形的寬度來表現(xiàn)數(shù)據(jù)的大小,感興趣的小伙伴一起進入文章學習更詳細內(nèi)容吧
    2021-12-12
  • python解析html提取數(shù)據(jù),并生成word文檔實例解析

    python解析html提取數(shù)據(jù),并生成word文檔實例解析

    這篇文章主要介紹了python解析html提取數(shù)據(jù),并生成word文檔實例解析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python 動態(tài)繪制愛心的示例

    python 動態(tài)繪制愛心的示例

    這篇文章主要介紹了python 動態(tài)繪制愛心的示例,幫助大家利用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • python實現(xiàn)人臉識別經(jīng)典算法(一) 特征臉法

    python實現(xiàn)人臉識別經(jīng)典算法(一) 特征臉法

    這篇文章主要為大家詳細介紹了python實現(xiàn)人臉識別經(jīng)典算法,特征臉法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 淺談Python實現(xiàn)貪心算法與活動安排問題

    淺談Python實現(xiàn)貪心算法與活動安排問題

    本篇文章主要介紹了淺談Python實現(xiàn)貪心算法與活動安排問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • pygame播放視頻并實現(xiàn)音視頻同步的解決方案

    pygame播放視頻并實現(xiàn)音視頻同步的解決方案

    本篇提供了pygame播放視頻的兩個方案,第一個方案是網(wǎng)上找的現(xiàn)成的,第二個方案則是參考了opencv(主流方案)自己逆向思維做的,還未經(jīng)過實際驗證,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • python使用fcntl模塊實現(xiàn)程序加鎖功能示例

    python使用fcntl模塊實現(xiàn)程序加鎖功能示例

    這篇文章主要介紹了python使用fcntl模塊實現(xiàn)程序加鎖功能,較為詳細的分析了fcntl模塊的具體功能并結合實例形式給出了Python實現(xiàn)程序加鎖的操作技巧,需要的朋友可以參考下
    2017-06-06
  • Python字符串、整數(shù)、和浮點型數(shù)相互轉換實例

    Python字符串、整數(shù)、和浮點型數(shù)相互轉換實例

    今天小編就為大家分享一篇Python字符串、整數(shù)、和浮點型數(shù)相互轉換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • python的print輸出在控制臺并且將輸出內(nèi)容保存為文件(最新推薦)

    python的print輸出在控制臺并且將輸出內(nèi)容保存為文件(最新推薦)

    這篇文章主要介紹了python的print輸出在控制臺并且將輸出內(nèi)容保存為文件,我感覺就是類似于重寫一下調(diào)用print的時候執(zhí)行的方法,讓他既能夠在控制臺輸出,也能保存到文件里去,需要的朋友可以參考下
    2023-01-01

最新評論

嘉祥县| 玉门市| 曲松县| 略阳县| 开封市| 洪湖市| 保亭| 华容县| 潞西市| 宝兴县| 梨树县| 汉寿县| 乳山市| 吉木萨尔县| 五台县| 利津县| 逊克县| 油尖旺区| 虞城县| 禹州市| 武穴市| 桐城市| 海丰县| 扶余县| 青岛市| 孝感市| 莱西市| 肥城市| 凤凰县| 常熟市| 铁岭县| 克东县| 阿拉尔市| 兰西县| 女性| 彝良县| 温州市| 盈江县| 辽阳市| 汾西县| 济源市|