日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:33日期:2022-06-21 11:25:07
十八、Django 后臺模型屬性篇

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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='手機號碼')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='分數')

admin.py

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

上述內容補充完整之后,就可以進行后臺對數據進行維護了。

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

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

18.2.1 date_hierarchy

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

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

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

python manage.py makemigrations scoringpython manage.py migrate

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

from django.contrib import adminfrom .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 = True18.2.3 actions_selection_counter

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

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

18.2.4 list_display

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

@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']

最終呈現的數據如下:

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

list_display 還可以給字段嵌套一個函數。

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 為函數名,函數內會接收一個對象 list_display = ['_id', warp_name, 'mobile', 'create_time'] warp_name.short_description = '格式化的名字'

也可以將上述代碼的 warp_name 函數,放置到 CustomerAdmin 內部。

@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 = '格式化名字'

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

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

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

空數據展示的方式,默認空數據展示的是 --,使用該屬性之后,可以進行自定義設置。修改 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 后臺管理之后臺模型屬性詳解

接下來使用該字段進行數據的展示,在 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每頁顯示的數據條數。

ordering排序字段列表。

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

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

readonly_fields不可編輯字段。

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

到此這篇關于Python Django 后臺管理之后臺模型屬性的文章就介紹到這了,更多相關Python Django 后臺管理內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
福利一区在线| 国产精品xxx| 国产麻豆一区二区三区 | 亚洲二区在线| 日韩在线中文| 色爱av综合网| 91精品国产调教在线观看| 日韩理论片av| 久久国产精品99国产| 爽爽淫人综合网网站| 天堂av在线一区| 精品视频自拍| 日韩精品免费一区二区夜夜嗨| 国产精品激情| 欧美日韩国产一区精品一区| 亚洲激情黄色| 青青久久av| 色在线中文字幕| 狠狠久久伊人中文字幕| 国产日韩欧美中文在线| 亚洲二区精品| 亚洲午夜电影| 亚洲精品伊人| 国产一区导航| 国产精品宾馆| 欧美a级一区| 青青在线精品| 亚洲永久av| 日本一区福利在线| 成人国产综合| 欧美日韩一区自拍| 青青草91视频| 久久精品导航| 久久精品99久久久| 久久久久国产| 国产精品久久免费视频| 国产精品蜜芽在线观看| 日韩中文欧美在线| 精品日本视频| 热久久久久久| 亚洲一区二区三区四区电影| 91视频一区| 久久国产尿小便嘘嘘| 亚洲国产日韩欧美在线| 久久精品国产999大香线蕉| 亚洲欧美日韩一区在线观看| 久久不见久久见免费视频7| 免费日韩av片| 亚洲黄页一区| 欧美中文一区二区| 成人看片网站| 精品72久久久久中文字幕| 亚洲精品进入| 亚洲欧洲日韩| 在线一区二区三区视频| 首页亚洲欧美制服丝腿| 日韩一区二区免费看| 国产一在线精品一区在线观看| 国内在线观看一区二区三区| 国产欧美日韩视频在线| 亚洲人成亚洲精品| 五月精品视频| 婷婷综合社区| 免费久久99精品国产| 亚洲综合三区| 日韩欧美高清一区二区三区| 免费成人在线观看| 亚洲毛片视频| 国产欧美日韩一级| 麻豆国产精品| 麻豆网站免费在线观看| 激情亚洲影院在线观看| 蜜臀av免费一区二区三区| 99视频精品| 日韩精品永久网址| 久久久久.com| 中文在线а√天堂| 久久91导航| 中文一区二区| 日韩av资源网| 四虎成人av| 亚洲经典在线| 日韩精品欧美精品| 国产精品字幕| 婷婷综合网站| 亚洲一区激情| 国产一区二区三区网| 韩国精品主播一区二区在线观看 | 婷婷激情综合| 国产精品中文字幕亚洲欧美| 日韩欧美一区二区三区在线视频| 夜夜嗨一区二区| 美腿丝袜亚洲一区| 一本一道久久a久久精品蜜桃| 久久国产生活片100| 国产伊人精品| 欧美精品高清| 国产经典一区| 欧美 日韩 国产精品免费观看| 日韩精品电影一区亚洲| 国产一区二区三区不卡视频网站 | 丁香婷婷久久| 亚洲经典在线| 国产精品极品| 亚州av日韩av| 欧美不卡高清一区二区三区| 一本一道久久a久久| 欧美日韩视频免费观看| 韩日一区二区| 精品五月天堂| 成人av二区| 久久国产精品久久久久久电车| 国产乱码精品一区二区三区四区 | 国产韩日影视精品| 日韩有码av| 亚洲欧洲专区| 久久男人av| 国产精品美女| 国产精品成人**免费视频| 99久久激情| 国产精品一区二区三区美女| 日韩精品午夜| 国产一区二区三区久久 | 欧美片网站免费| 黄色不卡一区| 国产一区二区三区天码| 亚洲韩日在线| 国产亚洲午夜| 日韩1区2区3区| 国产精品国产一区| 久久亚洲美女| 亚洲国产专区校园欧美| 国产中文字幕一区二区三区| 欧美日韩一区自拍| 欧美日韩国产免费观看| 欧美亚洲综合视频| 91亚洲国产| 亚洲精品进入| 亚洲黄色影院| 香蕉人人精品| 日韩免费小视频| 亚洲一级二级| 亚洲国产日韩欧美在线| 韩国一区二区三区视频| 国产精品毛片| 精品国产亚洲日本| 青青国产精品| 综合国产在线| 四虎精品永久免费| 青青青国产精品| 婷婷六月综合| 欧美日本不卡| 丝袜av一区| 国产精品成人3p一区二区三区| 久久午夜精品一区二区| 国产亚洲在线观看| 日韩亚洲精品在线观看| 亚洲精品伊人| 久久蜜桃资源一区二区老牛| 成人午夜毛片| 日本成人精品| 久久不射网站| 视频一区视频二区在线观看| 激情91久久| 日韩不卡免费视频| 国产自产自拍视频在线观看| 国产一区二区三区探花| 日韩不卡一区二区| 亚洲一级大片| 亚洲一二av| 国产伦乱精品| 在线中文字幕播放| 天堂av在线一区| 91精品国产乱码久久久久久久| 久久精品一区二区国产| 日韩有码av| 日韩精品一二三区| 国产精品极品在线观看| 国产欧洲在线| 亚洲网址在线观看| 日韩黄色大片| 性色一区二区| 青青国产精品| 日韩欧美一区二区三区在线观看| 欧美精品一区二区久久| 黄在线观看免费网站ktv| 中文字幕成在线观看| 久久久久久美女精品| 亚洲欧美久久久| 日本一二区不卡| 一区二区电影在线观看| 免费在线成人网| 久久精品国产网站| 日韩三区免费| 国产伦精品一区二区三区在线播放| 国产一区二区三区探花| 国产亚洲久久| 色综合狠狠操| 免费久久久久久久久| 欧美一区自拍|