复选框在 Django 模板中返回空白值

checkbox returning blank value in a django template

我在我的模型中定义了一个 BooleanField class。我尝试使用 Django 模板中的复选框设置值,但在提交表单后我的视图中得到一个空白值。

模型class中的声明是:

enable = models.BooleanField(default=False)

我在模板中的代码如下:

<input type="checkbox" name="enable" id="enable" value="{{enable}}" /> Enable

提交表单后,我尝试在视图中的方法中像这样访问它:

enabled = request.POST['enable']
print enabled

如何检索复选框的值?

复选框的选中状态应通过 checked 属性设置:

<input type="checkbox" name="enable" id="enable" value="on"
                             {% if enable %}checked="checked"{% endif %} />

另一个问题是:如何将 enable 变量传递给模板上下文?我怀疑你传递了一些模型实例。如果是,那么您应该使用 enabled 作为此实例的 属性:

{% if obj.enable %}checked="checked"{% endif %}

其中 obj 是对象的名称。

要获取复选框的值,请使用 get() 方法。您甚至可以将其强制转换为布尔值:

enabled = bool(request.POST.get('enable'))

而且我还建议使用 django 表单而不是手动 html 操作。它更容易也更安全。