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

在django模板中返回空白值的复选框,django,django-templates,Django,Django Templates,我在模型类中定义了一个布尔字段。我尝试使用django模板中的复选框设置该值,但在提交表单后,我在视图中得到一个空值 模型类中的声明是: enable = models.BooleanField(default=False) 我在模板中的代码如下: <input type="checkbox" name="enable" id="enable" value="{{enable}}" /> Enable 如何检索复选框的值?应通过选中属性设置复选框的选中状态: <input

我在模型类中定义了一个布尔字段。我尝试使用django模板中的复选框设置该值,但在提交表单后,我在视图中得到一个空值

模型类中的声明是:

enable = models.BooleanField(default=False)
我在模板中的代码如下:

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

如何检索复选框的值?

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

<input type="checkbox" name="enable" id="enable" value="on"
                             {% if enable %}checked="checked"{% endif %} />
其中obj是对象的名称

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

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

我还建议使用django表单,而不是手动操作html。它更简单、更安全。

您说您的视图中有一个空白值。。。你是说一个空字符串吗?您是否检查了通过{{enable}将什么值放入HTML?我得到一个空字符串,因此在模板{enable}中没有值。为什么不给我们看一下你的视图代码呢?现在,当我选中复选框时,我得到了值,当我不选中它时,我得到了一个错误,因为post参数不是set@user2739737这是意料之中的行为。您可以执行enabled=request.POST.get'enable'以避免出现异常。。。然后,“启用”将启用或不启用
{% if obj.enable %}checked="checked"{% endif %}
enabled = bool(request.POST.get('enable'))