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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。