python 如何在Django中删除选择和单选输入中未选中的项目

4ngedf3f  于 2023-01-04  发布在  Python
关注(0)|答案(3)|浏览(115)

如果一个模型的字段是一个选项或外键,那么页面上的widget就是一个选择输入或radio,如果你指定的话。Django把“---------”作为一个未选择的值放在第一个项目中。我该如何覆盖它,什至删除它呢?我记得阅读过这样做的方法,但是再也找不到了。

xlpyo6sf

xlpyo6sf1#

Django forms doc
默认情况下,ModelChoiceField使用的<select>小部件在列表顶部有一个空选项,您可以使用empty_label属性更改此标签的文本(默认为"--------"),或者您可以通过设置empty_label=None完全禁用空标签:
field2 = forms.ModelChoiceField(queryset=..., empty_label=None)
如果您需要在ModelForm上执行此操作,我有一个答案here

y0u0uwnf

y0u0uwnf2#

参见:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/
如果模型字段设置了选项,则表单字段的小部件将设置为"选择",选项来自模型字段的选项。选项通常包括默认选中的空白选项。如果字段是必填字段,这将强制用户进行选择。如果模型字段具有blank = False和显式默认值,则不会包括空白选择(将改为初始选择默认值)。

mnowg1ta

mnowg1ta3#

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

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

相关问题