Python ModelChoiceForm不创建空的\u标签

Python ModelChoiceForm不创建空的\u标签,python,django,forms,widget,Python,Django,Forms,Widget,我在django中使用modelcooiceselect制作了一个表单,我想在select小部件上放置一个空标签,这样第一个选择就不是选中的。这是我的forms.py: from django import forms from .models import Country, Embassy class CountryListForm(forms.Form): countries = forms.ModelChoiceField(queryset=Country.objects.al

我在django中使用
modelcooiceselect
制作了一个表单,我想在select小部件上放置一个
空标签,这样第一个选择就不是选中的。这是我的forms.py:

from django import forms

from .models import Country, Embassy

class CountryListForm(forms.Form):
    countries = forms.ModelChoiceField(queryset=Country.objects.all().order_by('name'), empty_label="(Nothing)")
从its中我了解到,我只需要传递
empty_label
属性一个值来创建它。我已经做过了,但是空选项没有出现,我用这个表单做错了什么

这就是我的小部件的外观,与
empty\u label


空标签
属性是可选的。默认情况下,它是“----------”。当选择此选项时,对象的表单字段
国家将返回
。如果希望字段中的
None
作为选项,则可通过
empty\u label
设置其显示字符串

countries = forms.ModelChoiceField(queryset=Country.objects.all().order_by('name'), empty_label="Any String You Want None Option")
如果不需要
None
选项,请将
空标签设置为
None
。这将显示
queryset
中的第一个对象作为第一个选项

countries = forms.ModelChoiceField(queryset=Country.objects.all().order_by('name'), empty_label=None)

我将我的
空标签
值切换为与您的相同,但它仍然没有显示。查看我添加到问题中的照片。您是否传递了默认参数?还是要求提供该字段?根据文档:
请注意,如果ModelChoiceField是必需的且具有默认初始值,则不会创建空选项(无论空标签的值如何)。
不确定是否需要。模型中的
Country
字段是外键。