目錄
- 一、Admin的配置
- 1.激活管理工具
- 2.使用管理工具
- 3.注冊超級用戶
- 4.修改語言
- 二、管理數據模型
- 1.注冊medel類到admin
- 2.自定制類
一、Admin的配置
Admin是Django的一個強大的功能,它能從數據庫中讀取數據,并呈現在頁面中,進行管理。默認情況下,它的功能已經非常強大,如果你不需要復雜的功能,它已經夠用,但是有時候,一些特殊的功能還需要定制,比如搜索功能,下面這一系列文章就逐步深入介紹如何定制適合自己的admin應用。
1.激活管理工具
通常我們在生成項目時會在 urls.py 中自動設置好,當這一切都配置好后,Django 管理工具就可以運行了。
# urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
2.使用管理工具
啟動開發服務器,然后在瀏覽器中訪問 http://127.0.0.1:8000/admin/,得到如下界面:
3.注冊超級用戶
你可以通過命令 python manage.py createsuperuser 來創建超級用戶,如下所示:
# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address:
Password:
Password (again):
Superuser created successfully.
郵箱地址可選,可填也可不填
注冊完成后,我們便可以登陸強大的管理系統.
4.修改語言
如果你覺得英文界面不好用,可以在setting.py 文件中修改以下選項
LANGUAGE_CODE = 'en-us' #LANGUAGE_CODE = 'zh-hans'
二、管理數據模型
1.注冊medel類到admin
注冊medel的兩種方法:
<1> 使用register的方法
admin.site.register(Book)
<2> 使用register的裝飾器
@admin.register(Book)
方法二后面需要加一個自定制類
實現代碼:
admin.site.register(models.Book)
admin.site.register(models.Publish)
admin.site.register(models.Author)
當我們點擊某個數據進行管理時,還缺乏某些功能需要我們自己自定制,比如搜索,排序等等功能。
2.自定制類
from django.contrib import admin
from app import models
@admin.register(models.Book)
class BookAdmin(admin.ModelAdmin):
list_display = ("id","name", 'price',) #在每一條記錄上,指定要顯示的字段
list_editable = ("name", "price",) #可直接對字段進行編輯
filter_horizontal = ("author",)
# filter_vertical = ("author",)
# list_per_page = 2 #對記錄進行分頁,每一頁只有XX條信息。
search_fields = ("id", "name", ) #指定搜索的字段,可以選擇多個字段
list_filter = ("publish","put_data",) #指定列表過濾器
ordering = ("price",) # 指定排序字段,默認以創建時間排序
admin.site.register(models.Publish)
admin.site.register(models.Author)
常見的自定制方法有這幾個,使用后能夠是我們的管理界面更加的強大
- list_display: 指定要顯示的字段
- search_fields: 指定搜索的字段
- list_filter: 指定列表過濾器
- ordering: 指定排序字段
其實,當我們在添加書籍的時候,沒有必要將所有的字段都需要填寫,如果有些字段可選填的,那么就可以隱藏起來,我們需要補充時,就可以填寫。這就要用到fieldsets,
fieldsets =[
(None, {'fields': ['name']}),
('price information', {'fields': ['price',"publish"], 'classes': ['collapse']}),
('put data',{'fields': ["put_data"], 'classes': ['collapse']} ),
]
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
