django 表单下拉字段中的占位符

luk*_*s06 1 python django placeholder django-forms

我对 django 形式的下拉字段有一个小问题。我想添加到这个字段占位符(或不活动的第一个选项作为占位符)和其他一些东西,如无标签、类等。我写了这样的东西,forms.py但现在我的表单坏了 - 不要将值保存到数据库.

from .models import Scenario, ScenarioArea
from django import forms

class newScenario(forms.ModelForm):
    scenarioArea=forms.ModelChoiceField(label="", queryset=ScenarioArea.objects.values_list("scenarioAreaName", flat=True).distinct(), empty_label=None)

lass Meta:
        model = Scenario
        fields = ['scenarioArea']
Run Code Online (Sandbox Code Playgroud)

所有其他字段类型都在工作,但不是这个下拉列表......你能帮我吗?

Eli*_*sta 5

默认情况下,ModelChoiceField 使用的小部件将在列表顶部有一个空选项。您可以使用 empty_label 属性更改此标签的文本(默认情况下为“---------”),或者您可以通过将 empty_label 设置为 None 来完全禁用空标签:

当您设置empty_label为 时None,不会显示此选项。

例子

scenario_area = forms.ModelChoiceField(label="", queryset=ScenarioArea.objects.distinct('scenarioAreaName'), empty_label="Placeholder")
Run Code Online (Sandbox Code Playgroud)