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