django - Django 表单下拉列表中的初始值不为空?

标签 django django-forms

我有一个表格,我可以在其中定义报告的选择标准。 从模型自动填充的下拉菜单“建筑物”之一应该不是强制性的,默认值为空。我无法实现空的部分。

我想要下拉列表中的第一个字段

在我的表单中

building = forms.IntegerField(
widget=forms.Select(
    choices=Building.objects.all().values_list('id', 'name')
    ) , required=False
 )

初始化代码时在 View 文件中

form = PaymentRangeForm(initial = {'building': 0 })

我在我的模板中使用了脆皮形式,但我认为这没有任何区别。

     <form method="POST"  class="form" action="" method="get">
                {% csrf_token %}
                {{ form|crispy}} 
                <br>
                <button type="submit" class="btn btn-primary btn-primary">Search</button>
    </form>

我没有收到任何错误,但默认值不为空,它具有模型中第一条记录的值。

我错过了什么?

最佳答案

好的 解决方案很简单。在我的源文件中,我添加了

from django.db.models.fields import BLANK_CHOICE_DASH

并更新了表单

class PaymentRangeForm(forms.Form):

    start_date = forms.DateField(widget=forms.TextInput(attrs={'type': 'date'} ))
    end_date = forms.DateField(widget=forms.TextInput(attrs={'type': 'date'} ))
    building = forms.ChoiceField(choices=BLANK_CHOICE_DASH + list(Building.objects.values_list('id', 'name')), required=False)

关于django - Django 表单下拉列表中的初始值不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46644908/

相关文章:

python - Django 'DateField' 对象没有属性 'is_hidden'

javascript - 如何使用 javascript 而不是 Django session 将表单数据(Django 表单)存储到浏览器的本地存储?

django - 如何在 Django 中显示具有 size 和 maxlength 属性的表单字段?

python - 如何只包含一次js和css

python - 如何在 django 中强制出现异常以便在 django 中对其进行测试

django - 使用 Django Treebeard 获取祖先时如何防止 N+1 查询?

Django UNIQUE 约束失败 : core_organization. 名称

django表单向导和recaptcha

django - 如何向django添加多个图像

django - 如何在 Django 表单中向时间字段添加选项?