admin
django amdin是django提供的一個后臺管理頁面,給管理頁面提供完善的html和css,使得你在通過Model創建完數據庫表之后,就可以對數據進行增刪改查,它是django強大功能之一,它能共從數據庫中讀取數據,呈現在頁面中,進行管理。默認情況下,它的功能已經非常強大,如果你不需要復雜的功能,它已經夠用,但是有時候,一些特殊的功能還需要定制,比如搜索功能,下面這一系列文章就逐步深入介紹如何定制適合自己的admin應用。
1 首先我們用pycharm創建一個Django項目
2 創建數據庫表(app01下的models.py)
from django.db import models
# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length=30, verbose_name="名稱")
address = models.CharField("地址", max_length=50)
city = models.CharField('城市', max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
class Meta:
verbose_name = '出版商'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Author(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class AuthorDetail(models.Model):
sex = models.BooleanField(max_length=1, choices=((0, '男'), (1, '女'),))
email = models.EmailField()
address = models.CharField(max_length=50)
birthday = models.DateField()
author = models.OneToOneField(Author, on_delete=None)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher, on_delete=None)
publication_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2, default=10)
def __str__(self):
return self.title
3 注冊和配置django admin 后臺管理頁面
注冊medel類到admin的兩種方式:
<1> 使用register的方法
admin.site.register(Book,MyAdmin)
<2> 使用register的裝飾器
@admin.register(Book)
認識ModelAdmin
管理界面的定制類,如需擴展特定的model界面需從該類繼承。
app01下的admin.py
from django.contrib import admin
# Register your models here.
from app01.models import *
# Register your models here.
# @admin.register(Book)#----->單給某個表加一個定制
class MyAdmin(admin.ModelAdmin):
list_display = ("title","price","publisher")
search_fields = ("title","publisher__name")
list_filter = ("publisher__name",)
ordering = ("price",)
fieldsets =[
(None, {'fields': ['title']}),
('price information', {'fields': ['price',"publisher","publication_date"], 'classes': ['collapse']}),
]
admin.site.register(Book,MyAdmin)
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(AuthorDetail)
-
list_display: 指定要顯示的字段
-
search_fields: 指定搜索的字段
-
list_filter: 指定列表過濾器
-
ordering: 指定排序字段
-
fieldsets: 分組顯示
4 打開terminal,同步數據庫,并創建管理員用戶
同步數據庫
python manage.py makemigrations
python manage.py migrate
并創建管理員用戶
python manage.py createsuperuser
5 管理界面默認是英文,可以在setting.py 文件中修改以下選項,變成中文
LANGUAGE_CODE = 'zh-hans'
6 啟動項目,訪問http://127.0.0.1:8000/admin,界面如下
7 輸入剛才創建的管理員用戶名和密碼
8 之后就可以對數據進行增刪改查了,怎么樣?是不是很強大!
識別圖中二維碼,領取python全套視頻資料