tun*_*rob 5 django django-forms django-widget
如何从呈现的选项中删除“------”?我在我的模型形式中使用:
widgets = {
'event_form': forms.CheckboxSelectMultiple(),
}
Run Code Online (Sandbox Code Playgroud)
在模型中,我有 IntegerField 有选择:
EVENT_FORM_CHOICES = (
(1, _(u'aaaa')),
(2, _(u'bbbb')),
(3, _(cccc')),
(4, _(u'dddd')),
(5, _(eeee'))
)
Run Code Online (Sandbox Code Playgroud)
呈现的选择包含 --------- 作为第一可能的选择。我怎样才能摆脱它?
编辑:我想出的唯一工作方法是(在init方法中):
tmp_choices = self.fields['event_form'].choices
del tmp_choices[0]
self.fields['event_form'].choices = tmp_choices
Run Code Online (Sandbox Code Playgroud)
但这不是很优雅的方式:)
Django 包含空白选项,因为该字段没有默认值。
如果您在模型中设置默认值,则 Django 将不会包含空白选项。
class MyModel(models.Model):
event_form = models.PositiveSmallIntegerField(choices=EVENT_FORM_CHOICES, default=1)
Run Code Online (Sandbox Code Playgroud)
如果您不想在模型中设置默认值,则可以在模型表单中显式声明字段和选择,或更改模型表单方法中的选择__init__。