Empty Label ChoiceField Django
See the Django 1.11 documentation on ChoiceField. The 'empty value' for the ChoiceField is defined as the empty string ''
, so your list of tuples should contain a key of ''
mapped to whatever value you want to show for the empty value.
### forms.pyfrom django.forms import Form, ChoiceFieldCHOICE_LIST = [ ('', '----'), # replace the value '----' with whatever you want, it won't matter (1, 'Rock'), (2, 'Hard Place')]class SomeForm (Form): some_choice = ChoiceField(choices=CHOICE_LIST, required=False)
Note, you can avoid a form error if you want the form field to be optional by using required=False
Also, if you already have a CHOICE_LIST without an empty value, you can insert one so it shows up first in the form drop-down menu:
CHOICE_LIST.insert(0, ('', '----'))
You can try this (assuming your choices are tuples):
blank_choice = (('', '---------'),)...color = forms.ChoiceField(choices=blank_choice + COLORS)year = forms.ChoiceField(choices=blank_choice + YEAR_CHOICES)
Also, I can't tell from your code whether this is a form or a ModelForm, but it it's the latter, no need to redefine the form field here (you can include the choices=COLORS and choices=YEAR_CHOICES directly in the model field.
Hope this helps.