禁用 Django ModelForm 中的空选项

Posted

技术标签:

【中文标题】禁用 Django ModelForm 中的空选项【英文标题】:Disable the empty option in Django ModelForm 【发布时间】:2011-05-30 06:09:07 【问题描述】:

我在ModelForm 子类中使用widget=forms.CheckboxSelectMultiple 将字段显示更改为复选框。选项确实变成了复选框,但 Django 添加了第一个“空”选项,内容为 ---------

当使用Select 小部件显示字段时,此行为是可以的,因为它强制用户明确选择一个选项。但是,当使用复选框时,它变得无用且相当混乱。如何禁用它?

【问题讨论】:

【参考方案1】:

我错了,我应该仔细查看docs。无论如何,这是解决方案:

默认情况下,ModelChoiceField 使用的小部件将在列表顶部有一个空选项。您可以使用 empty_label 属性更改此标签的文本(默认为“------”),或者您可以通过将 empty_label 设置为 None 来完全禁用空标签

【讨论】:

以上是关于禁用 Django ModelForm 中的空选项的主要内容,如果未能解决你的问题,请参考以下文章

choiceField的“禁用”选项 - Django

在 django 3.0 中将复选框选项显示为“已禁用”。模型形式

Django Crispy Forms 向 ModelFormSet 添加新的空表单

django modelform 为空显示空白

python Django:为ModelForm的СhoiceField添加空选项

带有 Select Widget 的 Django ModelForm - 使用 object.uid 作为默认选项值而不是 object.id