我在模型类中定义了一个BooleanField。我尝试使用我的django模板中的复选框设置值,但在提交表单后,我在视图中得到一个空白值。
模型类中的声明是:
enable = models.BooleanField(default=False)
模板中的代码如下:
<input type="checkbox" name="enable" id="enable" value="{{enable}}" /> Enable
提交表单后,我尝试在视图中的方法中访问它:
enabled = request.POST['enable']
print enabled
如何检索复选框的值?
答案 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操作。它更容易,更安全。