當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Django ModelAdmin.fieldsets用法及代碼示例


本文介紹 django.contrib.admin.ModelAdmin.fieldsets 的用法。

聲明

ModelAdmin.fieldsets

設置fieldsets 以控製管理“add” 和“change” 頁麵的布局。

fieldsets 是two-tuples 的列表,其中每個二元組代表管理表單頁麵上的一個<fieldset>。 (<fieldset> 是表單的 “section”。)

two-tuples 的格式為 (name, field_options) ,其中 name 是表示字段集標題的字符串,而 field_options 是有關字段集的信息字典,包括要在其中顯示的字段列表。

一個完整的例子,取自 django.contrib.flatpages.models.FlatPage 模型:

from django.contrib import admin

class FlatPageAdmin(admin.ModelAdmin):
    fieldsets = (
        (None, {
            'fields': ('url', 'title', 'content', 'sites')
        }),
        ('Advanced options', {
            'classes': ('collapse',),
            'fields': ('registration_required', 'template_name'),
        }),
    )

這會產生一個如下所示的管理頁麵:

fieldsets.png

如果既不存在 fieldsets 也不存在 fields 選項,Django 將默認顯示每個不是 AutoField 且具有 editable=True 的字段,在單個字段集中,其順序與在模型。

field_options 字典可以有以下鍵:

  • fields

    要在此字段集中顯示的字段名稱元組。此 key 是必需的。

    例子:

    {
    'fields': ('first_name', 'last_name', 'address', 'city', 'state'),
    }

    fields 選項一樣,要在同一行顯示多個字段,請將這些字段包裝在它們自己的元組中。在此示例中,first_namelast_name 字段將顯示在同一行:

    {
    'fields': (('first_name', 'last_name'), 'address', 'city', 'state'),
    }

    fields 可以包含在 readonly_fields 中定義的值,以顯示為隻讀。

    如果將可調用對象的名稱添加到 fields ,則適用與 fields 選項相同的規則:可調用對象必須列在 readonly_fields 中。

  • classes

    包含要應用於字段集的額外 CSS 類的列表或元組。

    例子:

    {
    'classes': ('wide', 'extrapretty'),
    }

    默認管理站點樣式表定義的兩個有用的類是 collapsewidecollapse 樣式的字段集最初將在管理員中折疊並替換為小的 “click to expand” 鏈接。具有wide 樣式的字段集將獲得額外的水平空間。

  • description

    顯示在每個字段集頂部、字段集標題下的可選額外文本字符串。由於其布局,此字符串不會為 TabularInline 呈現。

    請注意,當它顯示在管理接口中時,此值為 not HTML-escaped。如果您願意,這可以讓您包含 HTML。或者,您可以使用純文本和 django.utils.html.escape() 來轉義任何 HTML 特殊字符。

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.admin.ModelAdmin.fieldsets。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。