Django表单中的空ChoiceField选择

时间:2011-05-22 02:55:00

标签: django django-forms

我有一个下拉表单,可以选择毕业年份 -

graduation = forms.ChoiceField(choices=[(x,str(x)) for x in graduation_range])

如何添加其他字段并将其设为默认选择/显示?例如,“选择年份”。

目前,我正在做 -

graduation_range = range(1970,2015)
graduation_range.append('Select Year')

但似乎必须有一种更直截了当的方法来做到这一点。  谢谢。

2 个答案:

答案 0 :(得分:7)

只需添加:

(u'', u'Select Year')  # First element will be the `value` attribute.

所以:

choices = [(u'', u'Select Year')]
choices.extend([(unicode(year), unicode(year)) for year in range(1970, 2015)])
graduation = forms.ChoiceField(choices=choices)

BTW,我使用unicode因为你使用的是str,但实际上一年的字段应该是一个整数,因为所有年份都是整数。

答案 1 :(得分:1)

#city choices
city_list=city.objects.all()
choices_city = ([('----select----','----select a city----')])
choices_city.extend([(x,x) for x in city_list])
city =forms.CharField(widget=forms.Select(choices=choices_city))

我用它来制作django 1.8