admin——django自帶數據庫管理工具


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
View Code

 

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)
View Code

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM