当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。