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


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


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

聲明

ModelAdmin.formfield_for_choice_field(db_field, request, **kwargs)

formfield_for_foreignkeyformfield_for_manytomany 方法一樣,formfield_for_choice_field 方法可以被覆蓋以更改已聲明選項的字段的默認表單字段。例如,如果超級用戶可用的選項與普通員工可用的選項不同,您可以執行以下操作:

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_choice_field(self, db_field, request, **kwargs):
        if db_field.name == "status":
            kwargs['choices'] = (
                ('accepted', 'Accepted'),
                ('denied', 'Denied'),
            )
            if request.user.is_superuser:
                kwargs['choices'] += (('ready', 'Ready for deployment'),)
        return super().formfield_for_choice_field(db_field, request, **kwargs)

注意

在表單域上設置的任何choices 屬性將僅限於表單域。如果模型上的相應字段設置了選項,則提供給表單的選項必須是這些選項的有效子集,否則在保存之前驗證模型本身時,表單提交將失敗並顯示 ValidationError

相關用法


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