Django 之ModelAdmin對象(補)

一、后臺管理系統配置


1 在該表對應的models類里面添加一個Meta類

站在用戶的角度思考問題,與客戶深入溝通,找到德清網站設計與德清網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、成都網站設計、企業官網、英文網站、手機端網站、網站推廣、申請域名雅安服務器托管、企業郵箱。業務覆蓋德清地區。

class Meta:
    verbose_name_plural = '用戶表' # 指定該表在admin后臺的名字為: 用戶表
    # verbose_name = '用戶表'      # 末尾還是會自動加s

2null=True,blank=True的區別

# null=True:  是告訴數據庫該字段可以為空,admin后臺默認還是不允許為空
# blank=True: admin 后臺該字段可以為空
phone = models.CharField(max_length = 11, blank = True, null = True, unique = True, verbose_name = "手機號")

3 settings.py配置,使django的后臺管理頁面變成中文、設置時區

# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

二、ModelAdmin 的常用屬性


1 注冊表

admin.py中只需要 Mode 中的某個類注冊,即可在 Admin 中實現增刪改查的功能。

from django.contrib import admin
from app import models
# Register your models here.

admin.site.register(models.UserInfo)
admin.site.register(models.Blog)

注冊完后點擊表名即可修改表內容。

2list_display 字段展示

  • list_display:列表時,定制顯示的列。
  • 在默認的情況下,Model 在 admin 列表修改頁(Admin ChangeList)只會顯示一列,內容是實例對象的__str__的返回值,如果想要多現實一些列的數據,就可以通過 list_display屬性來實現。
  • 它除了可以配置 Model 的字段名之外,還可以接收函數,且這個函數將一個 Model 實例對象作為參數,這個函數也需定義在 ModeAdmin中。語法格式如下:list_display=[]
  • 在使用 list_display時需要特別注意它的兩個特性
  • 對于 Foreignkey 類型的字段,顯示的是 obj.__str__() 返回的值。
  • 不支持 ManyToManyField 類型的字段,如果需要展示,可以用自定義方法實現。
# 方式一
class UserInfoAdmin(admin.ModelAdmin):
    list_display = ('username', 'email',)
admin.site.register(models.UserInfo, UserInfoAdmin)

# 方式二
@admin.register(models.UserInfo)                    
class UserInfoAdmin(admin.ModelAdmin):
    list_display = ('username', 'email',)

3list_display_links 鏈接至列表頁面,可以點擊跳轉。

  • 使用 list_display_links 可以控制 list_display 中的字段是否應該鏈接到對象的“更改”頁面。默認情況下,更改列表頁面會只將第一列鏈接到每個項目的更改頁面。它的使用格式和 list_display 相同,是列表或者元組類型。

  • 同時它也可以指定一個或多個字段。只要這些字段在中 list_display中存在 ,那么 Django 就不會在意鏈接了多少個字段。

注意:要使用 list_display_links 這個屬性 ,必須先要定義 list_display。

4 list_filter 過濾器

  • 配置 list_filter 屬性,可以在 Admin 后臺的列表修改頁的右側添加過濾器,且各個過濾條件是 and的關系。
  • list_filter 是列表或者元組類型,通常使用它會傳遞兩類元素:一個是 Model 的字段名,另一個是繼承自以下的類(并不常用):django.contrib.admin.SimpleListFilter
  • 對于 Model 的字段名,字段類型必須屬于 BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey 或 ManyToManyField 中的一種。
  • 同樣也可以使用雙下畫線實現跨表關聯。示例如下所示:list_filter= ['title', 'pub__pubname']

5 list_editable 設置字段名稱

  • 允許模型的字段在列表頁面上被編輯,也就是說,它包含的字段將在 list_editable更改頁面上顯示為表單窗口小部件,從而允許用戶一次編輯和保存多行。

使用 list_editable 時,你應該注意以下規則

  • list_editable 列表中的每個字段也必須位于list_display中。否則你將無法編輯;
  • 同一字段不能同時在 list_editable 和 list_display_links 中顯示,因為同一字段只能屬于它們兩者中的一個。

6 search_fileds 添加搜索框

  • 在一些場景下給某些字段添加搜索框是很有意義的,Django 考慮到這一點提供了 search_fileds 屬性,在 Admin 中表現為一個搜索框,查詢的字段可以是 CharField 或TextField 類型的。
  • 也可以是對 ForeignKey 或 ManyToManyField 字段類型的引用查詢,使用雙下畫線引用字段名。使用示例如下:search_fields = ['blog__site_name']
  • 對于搜索框中的輸入詞,Django 會將其分割成多個關鍵字,并返回所有包含這些關鍵字的實例對象。

提示:需要注意的是,每個關鍵字都必須是 search_fields選項中的至少一個。

7 ordering

  • 列表時,數據排序規則
8 list_per_page

新聞標題:Django 之ModelAdmin對象(補)
URL鏈接:http://m.kartarina.com/article46/dsogchg.html

成都網站建設公司_創新互聯,為您提供靜態網站網站營銷網站排名微信公眾號面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 精品无码免费专区毛片| 国产精品无码专区| 免费无码国产在线观国内自拍中文字幕| 人妻丰满熟妇AV无码区| 一区二区三区无码高清| 777爽死你无码免费看一二区| 伊人久久一区二区三区无码| 成人年无码AV片在线观看| 无码一区二区三区老色鬼| 亚洲AV永久无码精品网站在线观看| 亚洲精品无码永久中文字幕| 亚洲av无码专区国产不乱码| 国产台湾无码AV片在线观看| 亚洲av无码天堂一区二区三区| 人妻少妇伦在线无码专区视频| 无码精品A∨在线观看| 亚洲国产精品无码久久久秋霞2 | 人妻在线无码一区二区三区| 亚洲精品无码久久一线| 无码精品蜜桃一区二区三区WW| 久久久久亚洲AV无码专区体验 | 国产日产欧洲无码视频无遮挡| 亚洲GV天堂无码男同在线观看 | 精品久久无码中文字幕| 亚洲AV永久无码精品一百度影院 | 无码精品一区二区三区在线| 亚洲Av无码乱码在线znlu| 国产精品无码亚洲一区二区三区| 免费无码成人AV在线播放不卡| 亚洲精品无码久久久久| 亚洲精品无码午夜福利中文字幕 | 水蜜桃av无码一区二区| 中文无码成人免费视频在线观看| 亚洲精品无码日韩国产不卡?V| 成人免费无遮挡无码黄漫视频| 自慰系列无码专区| 亚洲AV无码乱码在线观看| 最新国产精品无码| 久久精品岛国av一区二区无码| 无码国产精品一区二区免费模式| 少妇人妻无码专区视频 |