在管理站点中更改 ForeignKey 的默认值

Posted

技术标签:

【中文标题】在管理站点中更改 ForeignKey 的默认值【英文标题】:Changing ForeignKey's defaults in admin site 【发布时间】:2011-01-12 18:38:41 【问题描述】:

我想知道如何更改管理站点表单中 ForeignKey 的空白值。有空白显示为“-----”。我想用一个词来代替它。

有人知道怎么做吗?

【问题讨论】:

【参考方案1】:

创建自定义 ModelForm 并在那里覆盖您的字段,然后将此表单类分配给 ModelAdmin 的表单选项。像这样:

#forms.py
class CustomForm(forms.ModelForm):
    user = forms.ModelChoiceField(queryset=User.objects.all(), empty_label=u'label')

class Meta:
    model = MyModel

#admin.py
class MyModelAdmin(admin.ModelAdmin):
     form = CustomForm

【讨论】:

【参考方案2】:

你需要使用ModelChoiceField's empty_label.

【讨论】:

好的,谢谢。但我想在某些形式的管理站点中做到这一点。我不知道如何使用 django admin 获取特定表单的特定字段。

以上是关于在管理站点中更改 ForeignKey 的默认值的主要内容,如果未能解决你的问题,请参考以下文章

在管理站点中排除具有特定值的多对多

管理站点中的默认过滤器[重复]

Django Admin ForeignKey字段小部件选项和不一致的默认值

如何从 django 管理站点中删除更改密码链接?

架构迁移和默认值

在 Django 管理更改/添加页面中显示 ForeignKey 数据