【问题标题】:Empty ChoiceField selection in Django formsDjango表单中的空ChoiceField选择
【发布时间】:2011-05-22 02:55:00
【问题描述】:

我有一个下拉表格供一个人选择毕业年份 --

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

如何添加一个附加字段并将其设为默认选择/显示?例如,诸如“选择年份”之类的内容。

目前,我正在做--

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

但似乎必须有更直接的方法来做到这一点。 谢谢。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    只需添加:

    (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)
    

    顺便说一句,我使用 unicode 是因为您使用的是 str,但实际上年份字段可能应该是整数,因为所有年份都是整数。

    【讨论】:

    • 当需要该字段时会发生什么?然后,即使用户没有选择值,也会提交表单。
    【解决方案2】:
    #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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多