当Django Admin使用Select小部件时,默认/ top / no-selection选项为“--------”:
有没有办法自定义该选项?我尝试手动修改选择字段的“选择”值:
def __init__(self, *args, **kwargs):
super(MyAdminForm, self).__init__(*args, **kwargs)
self.fields['my_field'].choices[0] = (u'', 'something else')
但这不起作用,因为管理员仍然显示“--------”...
的 更新
建议的duplicate question中的答案几乎解决了我的问题......但是,答案似乎是为所有选择字段提供相同无选择选项的技术。
在我的例子中,有问题的ModelForm由TabularInline ModelAdmin使用,因此表单在页面上重复20次,不同的实例需要不同的非选择值(取决于self.instance)。
此外,最新投票的答案不适用于最新版本的Django - 现在需要在empty_label
对象之前设置self.base_fields['my_field']
字段致电super()
。但是我需要self.instance
才能进行自定义,而self.instance
在调用None
之前为super()
...