如何删除Django中的选择和无线电输入中未选择的项目

时间:2010-10-14 17:00:02

标签: python django forms model choice

如果模型的字段是选项或外键,则页面上的窗口小部件是选择输入或无线电(如果指定)。 Django将“---------”作为未选择的值放在第一个项目中。如何覆盖它甚至删除它?我记得读过这样做但却找不到它。

3 个答案:

答案 0 :(得分:7)

来自Django forms doc

  

默认情况下,<select>使用的ModelChoiceField窗口小部件在列表顶部会有一个空选。您可以使用empty_label属性更改此标签的文本(默认为“---------”),也可以通过设置empty_label=None来完全禁用空标签:

     
    

field2 = forms.ModelChoiceField(queryset=..., empty_label=None)

  

如果您需要在ModelForm上执行此操作,我会得到答案here

答案 1 :(得分:6)

请参阅:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/

  

如果模型字段已设置选项,   然后表单字段的小部件将是   设置为选择,有选择   来自模型领域的选择。该   选择通常包括   选择的空白选项   默认。如果需要该字段,   这迫使用户制作一个   选择。空白的选择不会   如果模型字段有,则包括在内   blank = False和显式默认值   value(默认值为   最初选择了。)

答案 2 :(得分:3)

如果它是ModelForm,只需在模型中设置default=None,如下所示:

choose = models.CharField(max_length=3, choices=choose_dict, default=None)