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

时间:2015-01-20 14:43:13

标签: django django-templates

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

模型类中的声明是:

enable = models.BooleanField(default=False)

模板中的代码如下:

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

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

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

如何检索复选框的值?

1 个答案:

答案 0 :(得分:0)

复选框的选中状态应通过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操作。它更容易,更安全。