【问题标题】:django select boxdjango 选择框
【发布时间】:2012-08-28 20:06:25
【问题描述】:

这是我的 django 框架的模型代码。如您所见,我从数据库中检索值并通过列表框显示。

这很好用,但在列表框中只显示值。我需要在列表框中添加一个单词,例如“选择”。

date_value_list = MeasurementTest.objects.values_list('start_date',flat = True).distinct()
date1 = forms.ModelMultipleChoiceField(queryset = date_value_list, widget = forms.Select, required =  True)

我实际上是在尝试在上面的选择框中添加标签或 help_text。但这似乎不起作用。

date1 = forms.ModelMultipleChoiceField(queryset = date_value_list, widget = forms.Select, required =  True,help_text="select",label = "select")

上面的代码似乎不起作用。有人可以帮忙吗?

【问题讨论】:

    标签: django


    【解决方案1】:

    从 FormField 中删除 required=True。 并添加empty_label="Select"

    您的问题Click here的类似帖子

    【讨论】:

      【解决方案2】:

      我想你正在寻找empty_label

      # A custom empty label
      field1 = forms.ModelChoiceField(queryset=..., empty_label="Select value")
      
      # No empty label
      field2 = forms.ModelChoiceField(queryset=..., empty_label=None)
      

      【讨论】:

      • @ashan 实际上它似乎不适用于我的特殊情况。因为我使用 ModelMultipleChoiceField。
      • @sankar 正如您在标题中提到的,您需要在列表框中或选择中执行此操作,然后为什么要使用 ModelMultipleChoiceField??
      【解决方案3】:

      这有两个可能的原因。

      • 如果您在表单中将该字段设置为required=True

      • 如果您在MeasurementTest 模型中将模型字段设置为blank=False

      在这两种情况下,django 都会意识到这是一个必填字段,即使您指定了,也不会添加empty_label(因为该字段不能为空)。

      请注意,如果需要 ModelChoiceField 并且具有默认初始值,则不会创建空选项(无论 empty_label 的值如何)。

      Empty label definition

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-15
        • 2013-02-14
        • 2011-02-13
        • 2011-06-17
        • 2019-01-30
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        相关资源
        最近更新 更多