📜  NullBooleanField – Django 表单(1)

📅  最后修改于: 2023-12-03 15:03:18.380000             🧑  作者: Mango

NullBooleanField – Django 表单

在 Django 表单中,NullBooleanField 是一个布尔值字段,可以存储三个不同的值:True、False 或者 Null。表示此字段可以接受空值。

用法

在一个 forms.py 文件里,可以这样定义一个 NullBooleanField 字段:

from django import forms

class ExampleForm(forms.Form):
    my_field = forms.NullBooleanField()

这里 my_fieldNullBooleanField 字段的实例。这个字段在表单中将展示为一个单选按钮,其中有三个选项:是(True)、否(False)、不清楚(Null)。

参数

除了标准的字段参数外,NullBooleanField 还支持以下参数:

  • required:指定字段是否是必填项。默认为 False。
  • widget:指定表单元素的类型。默认为 Django 自带的 NullBooleanSelect 组件。
示例

在一个模板中,可以这样渲染一个 NullBooleanField 字段:

<form method="POST">
    {% csrf_token %}
    {% for field in form %}
        <div class="form-group{% if field.errors %} has-error{% endif %}">
            <label class="control-label">{{ field.label }}</label>
            <div class="controls">
                {{ field }}
            </div>
            {% if field.errors %}
                <span class="help-block">{{ field.errors|join:", " }}</span>
            {% endif %}
        </div>
    {% endfor %}
    <button type="submit" class="btn btn-primary">提交</button>
</form>

这里的 form 就是 ExampleForm 的实例。在模板中,我们使用一个 for 循环遍历表单中的每个字段,并按照 HTML 结构渲染出表单元素。

总结

NullBooleanField 可以用于接受三种不同的输入:是、否和不清楚。它通常用于yes/no询问,但也可以用于表示用户是否做出了某个选择。