Django Choice字段默认基于queryset的索引



你好,SO。

我想将我的选择选项默认设置为索引0。

这就是我创建表单的方式:

SOME_CHOICES = []
someObj = SomeModel.objects.filter(type = 1, is_active=True).order_by('id')
for x in enumerate(someObj):
SOME_CHOICES.append([x.id, x.salary_range_name])

some_field = forms.ChoiceField(choices=SOME_CHOICES)

正如您所看到的,我基于过滤器类型为1的模型创建了我的选择。我想有默认的选项作为第一个/索引0

手动设置来自模型的选项通常不是一个好主意。通常使用ModelChoiceField[Django-doc]。

您可以将empty_label设置为None以禁用它,因此:

class MyForm(forms.Form):
some_field = forms.ModelChoiceField(
queryset=SomeModel.objects.filter(type=1, is_active=True).order_by('pk'),
empty_label=None
)

最新更新