如何自定义选择器

时间:2018-06-15 15:53:46

标签: python django django-forms

我创建了以下表单:

class ProductFilter(forms.Form):
    price = forms.IntegerField(label='Price', widget=forms.Select(choices=PRICE_CHOICES), required=False)
    category = forms.ModelChoiceField(queryset=Category.objects.all(), required=False)
    language = forms.ModelChoiceField(queryset=ProductLanguage.objects.all(), required=False)

类别和语言中的默认<option>显示为"------------"。我知道我可以设置initial="...",但我希望默认选项不是查询集的一部分。

是否有可能以某种方式插入选项?我不想创建一种叫做“all”的语言或类别。

1 个答案:

答案 0 :(得分:1)

您可以通过设置empty_label来更改------------

category = forms.ModelChoiceField(queryset=Category.objects.all(), required=False, empty_label='(none)')

请注意,如果未选择任何类别,则使用此值。设置empty_label="all"会很困惑。