昨天已經把 Django admin 基本功能介紹完了,不過還有其他變數可以使用,今天把它給補完:
如果今天想要增加一個過濾器,可以這樣增加:
# online/admin.py
class EmployerAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'age')
list_filter = ('first_name', 'age')
這樣設定好後,在 Employer
的最右側,會多一個欄位,那邊可以用點擊的方法篩選你想要看的物件,如下圖:
如果今天想要改變一下後台的新增欄位排版,可以這樣修改:
# online/admin.py
class EmployerAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'age')
list_filter = ('first_name', 'age')
fields = [('first_name', 'last_name'), 'age']
可以看到下圖的欄位,從原本的往下排,變成兩個並列:
如我今天更進階一點,你想要讓分組的欄位可以取名,可以像下面那樣:
# online/admin.py
class EmployerAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'age')
list_filter = ('first_name', 'age')
fieldsets = (
('name', {
'fields': ('first_name', 'last_name')
}),
)
看下圖會發現的確欄位上有名字:
不過一定有人會好奇, age
這個欄位怎麼不見了,因為目前我們只有三個 field
,如果今天我們這樣寫:
# online/admin.py
class EmployerAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'age')
list_filter = ('first_name', 'age')
fieldsets = (
('name', {
'fields': ('first_name', 'last_name')
}),
('info', {
'fields': ('age')
}),
)
上面這樣會報錯喔!!!!再提醒一次,這樣寫會報錯喔!!!!一定要記得,所以如果不想要讓他報錯的話,記得要增再增加一個欄位,像這樣
# online/admin.py
class EmployerAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'age')
list_filter = ('first_name', 'age')
fieldsets = (
('name', {
'fields': ('first_name', 'last_name')
}),
('info', {
'fields': ('age', 'other Field')
}),
)
這樣加上去後,就會多一個 info
的區塊,這個區塊裡面會有 age
和 other Field
的欄位設定, 不過由於今次案例我們沒有多一個欄位,因此就不示範了。
今天學到哪些東西呢?
最後附上 Github: https://github.com/eagle0526/Django-store