I want to get rid of the \"-------------\" choice Django adds in a select input representing a Foreign Key on a ModelForm
It\'s been answered that you can use the
If you want to remove the blank choice for all ModelChoiceField
you could do something like..
class Form(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super(Form, self).__init__(*args, **kwargs)
modelchoicefields = [field for field_name, field in self.fields.iteritems() if
isinstance(field, forms.ModelChoiceField)]
for field in modelchoicefield:
field.empty_label = None
But that would replace all ModelChoiceField
s, so maybe something more fine grained like:
for fieldname in ('field1','field2','field3','field4','field5','field6'):
self.fields[fieldname].empty_label = None
Certainly easier than the __init__
overwrite you mentioned!
You can use 2017+ use:
forms.ModelChoiceField(... empty_label=None