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

Posted

技术标签:

【中文标题】django表单下拉字段中的占位符【英文标题】:Placeholder in django form dropdown field 【发布时间】:2020-04-09 06:55:25 【问题描述】:

我对 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']

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

【问题讨论】:

【参考方案1】:

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

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

示例

scenario_area = forms.ModelChoiceField(label="", queryset=ScenarioArea.objects.distinct('scenarioAreaName'), empty_label="Placeholder")

【讨论】:

谢谢!我使用了scenarioArea = forms.ModelChoiceField(label="", queryset=ScenarioArea.objects.all(), empty_label="Placeholder"),现在可以使用了!

以上是关于django表单下拉字段中的占位符的主要内容,如果未能解决你的问题,请参考以下文章

Django - 如何在作为模型当前字段的模型表单上添加占位符?

django 中的表单占位符无法正确显示

django 将占位符文本添加到表单字段

将占位符字段添加到基本的 UserCreation Django 注册表单

针对表单字段占位符属性中的特定字母

表单中输入占位符字段中的 Html 仅颜色 (*) 符号