1. 程式人生 > 程式設計 >django admin後管定製-顯示欄位的例項

django admin後管定製-顯示欄位的例項

先說需求:

1、django 自帶了admin後管,如果我們需要使用,只需把我們定義的models註冊即可;

2、但如果只是簡單註冊,那顯示的很簡單,根本看不到每行記錄的描述資訊,全部以model object 形式顯示,必須點選進去才能看到資訊,太不方便,如下圖:

django admin後管定製-顯示欄位的例項

1、顯示關鍵資訊

效果如下圖,這樣就好看多啦。

django admin後管定製-顯示欄位的例項

2、配置

在 admin.py 檔案中配置一下就行。

admin.py

# Underwriter admin model
class UnderwriterAdmin(admin.ModelAdmin):
  # 需要顯示的欄位資訊
  list_display = ('id','underwriter','shortname','telephone')

  # 設定哪些欄位可以點選進入編輯介面,預設是第一個欄位
  list_display_links = ('id','underwriter')

# 註冊時,在第二個引數寫上 admin model
admin.site.register(Underwriter,UnderwriterAdmin)

3、答疑

為何開始沒設定時,顯示的是 model object 形式呢 ??

原來是在定義 model 時,漏掉了一個步驟:

# 承銷商 model
class Underwriter(models.Model):
  underwriter = models.CharField(max_length=50)
  shortname = models.CharField(max_length=50)
  telephone = models.CharField(max_length=50)
  email = models.CharField(max_length=50,null=True,blank=True)

  # 應該加上這步,表示顯示時返回的是自定義資訊,而不是 object 形式
  def __unicode__(self):       # __str__ on Python 3
    return self.underwriter

補充知識:django 自定義使用者表和使用admin來管理資料庫

django 自定義使用者表

在使用django操作資料庫時,django中生成預設的User表,其中的欄位已經可以滿足我們的日常需求。但有時候,我們自己需要更多的欄位,我們就可以自定義使用者表。來替換django自帶的User表。

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

class User(AbstractUser):
  phone = models.CharField(max_length=11,blank=True)
  nickname = models.CharField(max_length=50,blank=True)
  img = models.ImageField(upload_to="upload/",default="static/upload/a.jpg",max_length=100)
  # upload_to 影象上傳地址
  class Meta:
    db_table = "user"
   verbose_name = '使用者'
    verbose_name_plural = verbose_name

注意,User類需要繼承AbstractUser;

在settings.py 中新增:

AUTH_USER_MODEL = 'app名.類名'

在命令列中輸入命令,生成使用者表。

db_table = “user” 自定義表名為user

Django 使用admin來管理資料庫中的內容

Django提供了自帶的admin功能,可以很方便的管理網站。首先要執行python manage.py createsuperuser 命令來建立一個管理員賬戶。

django admin後管定製-顯示欄位的例項

注意需要輸入使用者名稱,郵箱,密碼等資訊。

在admin.py中註冊模型:

from django.contrib import admin
#引入要註冊的模型
from music.models import Music
from music.models import Banner
from user.models import User
# Register your models here.註冊
admin.site.register(Music)
admin.site.register(Banner)
admin.site.register(User)

用瀏覽器訪問http://127.0.0.1:8000/admin/,輸入註冊的管理員賬戶和密碼。

django admin後管定製-顯示欄位的例項

可以對資料庫表進行簡單的增刪改查。

設定模型 models 的中文名,在models.py 類中新增:

class Meta:
 # 設定模型的名字,但是記得複數形式也要設定,否則有些地方就變成 verbose_name + s 了
 verbose_name = '使用者'
  verbose_name_plural = verbose_name

重新整理admin介面

django admin後管定製-顯示欄位的例項

以上這篇django admin後管定製-顯示欄位的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。