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


Python Django ModelAdmin.formfield_overrides用法及代码示例


本文介绍django.contrib.admin.ModelAdmin.formfield_overrides的用法。

声明

ModelAdmin.formfield_overrides

这提供了一种quick-and-dirty 方式来覆盖一些在管理员中使用的 Field 选项。 formfield_overrides 是一个字典,将字段类映射到参数字典,以便在构造时传递给字段。

由于这有点抽象,让我们看一个具体的例子。 formfield_overrides 最常见的用途是为特定类型的字段添加自定义小部件。因此,假设我们已经编写了一个 RichTextEditorWidget,我们希望将其用于大型文本字段,而不是默认的 <textarea>。以下是我们的做法:

from django.contrib import admin
from django.db import models

# Import our custom widget and our model from where they're defined
from myapp.models import MyModel
from myapp.widgets import RichTextEditorWidget

class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': RichTextEditorWidget},
    }

请注意,字典中的键是实际的字段类,not 是一个字符串。该值是另一个字典;这些参数将传递给表单字段的__init__() 方法。有关详细信息,请参阅表单 API。

警告

如果您想使用带有关系字段的自定义小部件(即 ForeignKey ManyToManyField ),请确保您没有在 raw_id_fieldsradio_fieldsautocomplete_fields 中包含该字段的名称。

formfield_overrides 不允许您更改设置了 raw_id_fieldsradio_fieldsautocomplete_fields 的关系字段上的小部件。这是因为 raw_id_fieldsradio_fieldsautocomplete_fields 暗示了它们自己的自定义小部件。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.admin.ModelAdmin.formfield_overrides。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。