1. 程式人生 > 實用技巧 >python——Django之admin的使用

python——Django之admin的使用

管理介面本地化

在settings.py中設定語言和時區(這裡我要設定的是中文)

#設定中文
LANGUAGE_CODE = 'zh-Hans'
#設定亞洲上海時區
TIME_ZONE = 'Asia/Shanhghai'

建立超級管理員

建立管理員的命令,如下

python manage.py createsuperuser

命令輸完以後,會顯示輸入使用者名稱、郵箱、密碼,效果如下:

注:在設定密碼時,需要注意密碼不能太過簡單,否則會重新編寫

執行專案後,在瀏覽器下的位址列輸入以下地址,回車,即可

http://127.0.0.1:8000/admin

上面完成以後,會彈出一個頁面,這個頁面是填寫使用者名稱和密碼(注:這裡的使用者名稱和密碼是前面建立的使用者名稱和密碼,需要注意下),效果如下:

登入成功後的介面,但是並沒有我們自己應用模型的入口,效果如下:

註冊模型類

注:這個需要在自己的應用中的admin.py檔案中進行註冊,才可在後臺管理中看到,並進行增刪改查的操作

1.開啟自己的應用下的admin檔案(這裡我的admin檔案在day/admin.py檔案,根據自己的來),編寫程式碼

from django.contrib import admin
from day.models import *
# Register your models here.

admin.site.register(Book)
admin.site.register(Author)

2.然後去瀏覽器中重新整理頁面,可以看到註冊的模型類了,效果如下:

3.當我們點選Books後,可以看到Books 表中的相關內容,效果如下:

提示: 這裡是表中有多少資料,就顯示多少資料

4.如果沒有顯示我們需要的資料,這時需要自定義admin,自定義的方式是通過類來實現的,代嗎如下:

class BookAdmin(admin.ModelAdmin):
    list_name=("id","title","price")

注意:定義管理類需要繼承admin.ModelAdmin,上面的代嗎是顯示錶中有哪些欄位,弄好以後,重新執行專案,效果如下

好像沒有什麼效果,沒有效果是因為這個管理類和我們的表沒有產生關聯,所以還需要一步,在註冊時加入第二個引數,程式碼如下:

from django.contrib import admin
from day.models import *
# Register your models here.
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ("id", "title", "price")


#admin.site.register(Book,BookAdmin)
admin.site.register(Author)

執行之後,效果如下:

管理中的常用設定

1.對Django管理的頁面中內容進行修改,程式碼如下:

list_editable = ("price",)

注:如果只有一個欄位的話,必須在後面加逗號

效果如下:

2.設定每頁所顯示多少條資料,程式碼如下:

#自己定義分頁
list_per_page = 2

效果如下:

3.在Books頁中新增搜尋,程式碼如下:

#新增搜尋
search_fields = ("id","title","price")

效果:

注:這裡我找的是書籍,找到以後,返回價格、書名等功能

4.調整站點資訊

在day/admin.py中進行設定,程式碼如下:

#調整站點資訊
admin.site.site_header="Django管理系統"
admin.site.index_title="歡迎使用圖書管理系統"

效果:

整理所有的程式碼,如下:

from django.contrib import admin
from day.models import *
# Register your models here.
#自定義admin進行設定
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ("id", "title", "price")
    #對頁面中內容進行修改
    list_editable = ("price",)
    #自己定義分頁
    list_per_page = 2
    #新增搜尋
    search_fields = ("id","title","price")



#admin.site.register(Book,BookAdmin)
admin.site.register(Author)
#調整站點資訊
admin.site.site_header="Django管理系統"
admin.site.index_title="歡迎使用圖書管理系統"