
- Django基礎概念
- Django - 首頁
- Django - 基礎
- Django - 概述
- Django - 環境搭建
- Django - 建立專案
- Django - 應用生命週期
- Django - 建立檢視
- Django - URL對映
- Django - 首頁
- Django - 模板系統
- Django - MVT
- Django - 新增主模板
- Django Admin
- Django Admin - 介面
- Django Admin - 建立使用者
- Django Admin - 包含模型
- Django Admin – 設定顯示欄位
- Django Admin - 更新物件
- Django 模型
- Django - 模型
- Django - 插入資料
- Django - 更新資料
- Django - 刪除資料
- Django - 更新模型
- Django 靜態檔案
- Django - 新增靜態檔案
- Django - 新增CSS檔案
- Django 高階
- Django - 404頁面未找到
- Django - 頁面重定向
- Django - 傳送郵件
- Django - 通用檢視
- Django - 表單處理
- Django - 檔案上傳
- Django - Apache設定
- Django - Cookie處理
- Django - Session
- Django - 快取
- Django - 評論
- Django - RSS
- Django - AJAX
- Django 有用資源
- Django - 快速指南
- Django - 有用資源
- Django - 討論
Django Admin – 設定顯示欄位
當模型註冊到Django的Admin站點時,點選模型名稱會顯示其物件的列表。
下圖顯示了Employees模型中物件的列表:

但是,上面的頁面顯示的物件形式為Employee object(1),並沒有顯示name或contact等屬性。為了使物件描述更友好,我們需要重寫employee模型類中的__str__()方法。
為了給出其物件的替代字串表示,employee類被改寫如下:
from django.db import models class Employee(models.Model): empno = models.CharField(max_length=20) empname = models.CharField(max_length=100) contact = models.CharField(max_length=15) salary = models.IntegerField() joined_date = models.DateField(null=True) class Meta: db_table = "employee" def __str__(self): return "Name: {}, Contact: {}".format(self.empname, self.contact)
對模型定義進行這些更改,然後重新整理admin站點的首頁(如果Django伺服器尚未執行,請啟動它)。
點選MYAPP下的Employees模型以顯示employee物件的詳細資訊:

如果點選任何物件詳情,則會顯示一個顯示物件屬性的表單,您可以在此處更新物件或刪除物件。

您可以使用admin.ModelAdmin物件的“list_display”屬性自定義“更改列表頁面”,該屬性指定在更改列表中顯示哪些列。
ModelAdmin類是在admin介面中模型的表示。通常,這些儲存在應用程式中的名為admin.py的檔案中。
透過繼承ModelAdmin類定義EmployeeAdmin類。將list_display屬性設定為要顯示的欄位的元組。
from django.contrib import admin # Register your models here. from .models import Employee class EmployeeAdmin(admin.ModelAdmin): list_display = ("empname", "contact", "joined_date")
註冊EmployeeAdmin類如下:
admin.site.register(Employee, EmployeeAdmin)
您也可以使用@admin.register()裝飾器註冊模型:
from django.contrib import admin # Register your models here. from .models import Employee @admin.register(Employee) class EmployeeAdmin(admin.ModelAdmin): list_display = ("empname", "contact", "joined_date")
儲存上述更改並重新整理Admin站點以顯示Employee物件的列表:

您還可以為列表頁面提供搜尋功能。在EmployeeAdmin類中新增search_fields屬性:
@admin.register(Employee) class EmployeeAdmin(admin.ModelAdmin): list_display = ("empname", "contact", "joined_date") search_fields = ("empname__startswith", )
現在列表頁面頂部顯示了一個搜尋欄位。搜尋基於員工姓名。__startswith修飾符將搜尋限制為以搜尋引數開頭的名稱。

因此,Django Admin介面是完全可定製的。您可以透過在admin類中提供fields屬性來設定在更新表單中提供的欄位。