admin是Django自帶的數據庫管理工具,是一個app
在admin.py中可以自己定制類來使admin數據庫管理頁面展現自己想要查看的信息
models.py

from django.db import models # Create your models here. class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=6, decimal_places=2) pub_date = models.DateField() authors = models.ManyToManyField(to="Author") def __str__(self): return self.title class Author(models.Model): name = models.CharField(max_length=32) def __str__(self): return self.name
admin.py

from django.contrib import admin from app01.models import * # Register your models here. class BookConfig(admin.ModelAdmin): """自定制類 使得在admin數據庫管理頁面可以看到自己想要看的信息""" list_display = ["title", "price", "pub_date"] # 多對多字段不可以用於此處 list_display_links = ["title"] # 設置可鏈接的字段 設置后,點擊該字段便可以進入編輯頁面 list_filter = ["pub_date"] # 以所設置的字段作為篩選器 進行記錄查詢 list_editable = ["price"] # 設置可編輯字段,注意:如果在list_display_links中設置了的字段,在此處不可以再設置 search_fields = ["title", "price"] # 設置檢索字段(模糊查詢:輸入關鍵字即可查詢) date_hierarchy = "pub_date" # 過濾日期 # action:批量操作記錄 def func(self, request, queryset): # request:請求 queryset:所選中的那些你想要操作的數據 print(self, request, queryset) # 對選中記錄作操作: queryset.update(pub_date="2012-1-1") # 將所選記錄的出版日改為2012年1月1日 func.short_description = "出版日改為2012年1月1日" actions = [func,] fields = ["title", "price", "pub_date", "authors"] # 在添加記錄的頁面顯示的字段 # exclude = ["pub_date"] # 在添加記錄的頁面不顯示的字段,與fields相反 ordering = ["id"] # 按id升序排列 降序用["-id"] admin.site.register(Book, BookConfig) # 源碼:register(self, model_or_iterable, admin_class=None, **options) # model_or_iterable=Book, admin_class=BookConfig print(admin.site._registry) admin.site.register(Author)