1. 管理臺表單布局(1)
# polls/admin.py
from django.contrib import admin
from .models import Question
class QuestionAdmin(admin.ModelAdmin):
# 定制表中內(nèi)容的展示順序
fields = ['pub_date', 'question_text']
# 注意在注冊時(shí)將上邊類放在第二個(gè)參數(shù)位置
admin.site.register(Question, QuestionAdmin)
2. 管理臺表單布局(2)
# polls/admin.py
from django.contrib import admin
from .models import Question
class QuestionAdmin(admin.ModelAdmin):
# 將表單內(nèi)容分成兩塊(第一塊為命名沽一,第二塊命名為'Date information')
# 每一塊保存在一個(gè)tuple中
fieldsets = [
(None, {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date']}),
]
admin.site.register(Question, QuestionAdmin)
3. 添加關(guān)聯(lián)對象
- 如果在polls/admin.py中直接注冊Choice數(shù)據(jù)模型,那么該模型在管理臺中將以獨(dú)立的形式顯示吨娜。使用這種方式對具體Question添加Choice不是很方便褥傍。
- 使用內(nèi)聯(lián)形式
# polls/admin.py
from django.contrib import admin
from .models import Choice, Question
# 除了StackedInline這種內(nèi)聯(lián)模式外喉誊,Django還提供一種TabularInline的內(nèi)聯(lián)模式(每個(gè)Choice選項(xiàng)將展示在一行)
class ChoiceInline(admin.StackedInline):
model = Choice
# 顯示3個(gè)額外的Choice表單
extra = 3
class QuestionAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
# 告訴Django該表單有一個(gè)內(nèi)聯(lián)表單
inlines = [ChoiceInline]
admin.site.register(Question, QuestionAdmin)
4. 定制管理臺的Change List
# polls/admin.py
class QuestionAdmin(admin.ModelAdmin):
# ...
list_display = ('question_text', 'pub_date', 'was_published_recently')
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者