58網(wǎng)站怎么做瀏覽度才高軟文代寫(xiě)兼職
以官方文檔為例:
一個(gè)投票問(wèn)題包含多個(gè)選項(xiàng),基本的表單設(shè)計(jì)只能一個(gè)選項(xiàng)一個(gè)選項(xiàng)添加,效率較低,如何在表單設(shè)計(jì)中一次性添加多個(gè)關(guān)聯(lián)選項(xiàng)?
示例代碼:
from django.contrib import adminfrom .models import Choice, Questionclass ChoiceInline(admin.StackedInline):model = Choiceextra = 3class QuestionAdmin(admin.ModelAdmin):fieldsets = [(None, {"fields": ["question_text"]}),("Date information", {"fields": ["pub_date"], "classes": ["collapse"]}),]inlines = [ChoiceInline]admin.site.register(Question, QuestionAdmin)
效果如下圖:
extra變量定義了在一個(gè)新表單中將會(huì)出現(xiàn)多少個(gè)需要同時(shí)添加的對(duì)象實(shí)例。
在三個(gè)插槽的末端,你會(huì)看到一個(gè)“Add another Choice”的按鈕。如果你單擊它,一個(gè)新的插槽會(huì)被添加。如果你想移除已有的插槽,可以點(diǎn)擊插槽右上角的X。
不過(guò),仍然有點(diǎn)小問(wèn)題。它占據(jù)了大量的屏幕區(qū)域來(lái)顯示所有關(guān)聯(lián)的 Choice 對(duì)象的字段。對(duì)于這個(gè)問(wèn)題,Django 提供了一種表格式的單行顯示關(guān)聯(lián)對(duì)象的方法。要使用它,只需按如下形式修改 ChoiceInline 申明:
class ChoiceInline(admin.TabularInline): ...
通過(guò) TabularInline (替代 StackedInline ),關(guān)聯(lián)對(duì)象以一種表格式的方式展示,顯得更加緊湊:
可以看到多出來(lái)一列,列名叫“DELETE?”,這一列可以刪除使用“Add another Choice”按鈕添加的行和已保存的行。