【发布时间】:2020-11-20 03:22:47
【问题描述】:
我正在使用models.ForeignKey 字段的默认表单字段,它是使用Select 小部件的ModelChoiceField。
有问题的相关模型是Weekday,并且该字段可以为空,因此它不会对数百个现有条目强制使用默认值。但是,在实践中,我们的默认值应该是星期日,即Weekday.objects.get(day_of_week=6)。
默认情况下,可空字段的选择小部件在呈现时会显示空选项。我怎样才能放弃这个选项并有一个默认值呢?
如果我设置了一个初始值,则默认情况下会在新表单上选择该值:
self.fields['start_weekday'].initial = Weekday.objects.get(day_of_week=6)
但仍列出空值。我尝试覆盖小部件选项:
self.fields['start_weekday'].widget.choices = [(wd.day_of_week, wd.name) for wd in Weekday.objects.all()]
但是现在默认情况下不选择星期日。我想也许我需要使用选项值作为初始值,但这也不起作用:
self.fields['start_weekday'].initial = Weekday.objects.get(day_of_week=6).pk
简而言之:如何删除可空模型字段中的空选项并选择默认值?
【问题讨论】:
标签: django django-1.8