Django自帶的后台管理是Django明顯特色之一,可以讓我們快速便捷管理數據。后台管理可以在各個app的admin.py文件中進行控制
#創建超級用戶
python manage.py createsuperuser
注意密碼需要8位,數字和字母組合
存儲在auth_user表中
一、 基本設置
1、應用注冊
若要把app應用顯示在后台管理中,需要在admin.py中注冊。這個注冊有兩種方式,我比較喜歡用裝飾器的方式。
先看看普通注冊方法。打開admin.py文件,如下代碼:
1 2 3 4 5 6 7 8 9 |
from django.contrib import admin from blog.models import Blog
#Blog模型的管理器 class BlogAdmin(admin.ModelAdmin): list_display=('id', 'caption', 'author', 'publish_time')
#在admin中注冊綁定 admin.site.register(Blog, BlogAdmin) |
上面方法是將管理器和注冊語句分開。有時容易忘記寫注冊語句,或者模型很多,不容易對應。
還有一種方式是用裝飾器,該方法是Django1.7的版本新增的功能:
1 2 3 4 5 6 7 |
from django.contrib import admin from blog.models import Blog
#Blog模型的管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin): list_display=('id', 'caption', 'author', 'publish_time') |
該方式比較方便明顯,推薦用這種方式。
2、admin界面漢化
默認admin后台管理界面是英文的,對英語盲來說用起來不方便。可以在settings.py中設置:
- LANGUAGE_CODE = 'zh-CN'
- TIME_ZONE = 'Asia/Shanghai'
1.8版本之后的language code設置不同:
- LANGUAGE_CODE = 'zh-hans'
- TIME_ZONE = 'Asia/Shanghai'
admin.py
from django.contrib import admin
from supermarket.models import Product
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display=('id', 'name', 'price')
#list_per_page設置每頁顯示多少條記錄,默認是100條
list_per_page = 50
#ordering設置默認排序字段,負號表示降序排序
ordering = ('-created_time',)
#list_editable 設置默認可編輯字段,在列表里就可以編輯
list_editable = ['title', 'user']
#設置哪些字段可以點擊進入編輯界面
list_display_links = ('id', 'title')
#設置查找字段
search_fields=['title']