42๐
โ
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!
Update from Moritz
You can use 2017+ use:
forms.ModelChoiceField(... empty_label=None
Source:stackexchange.com