Python ModelChoiceForm不创建空的\u标签
我在django中使用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
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
字段是外键。