无法在django中发布未选中的复选框值

时间:2012-04-13 18:11:22

标签: python django checkbox web

我发现在Django表单中发布复选框的状态时遇到了麻烦( Django v1.2 )。

这是我模型中的字段:

subscribe = models.BooleanField(default=False, verbose_name="Subscribe")

在相关模板文件中:

{{ form.subscribe }}

这会使复选框最初未经检查。但是当我发布表单(没有触及任何其他内容)时,django会在u'subscribe': [u'on']中发送request.POST。也就是说,无论是否选中该复选框,响应始终包含u'subscribe': [u'on']

如果未选中该复选框,则模板中的<input>标记将呈现为
<input type="checkbox" name="subscribe" id="id_subscribe" />

并且,选中该复选框后,它将呈现为
<input type="checkbox" name="subscribe" id="id_subscribe" checked="checked" />

我在这里遗漏了什么吗?

1 个答案:

答案 0 :(得分:0)

您的浏览器将值显示为“打开”。这是没有value =“blah”属性集的复选框输入的正常行为。如果它总是以“打开”发布,即使没有选中复选框,那么浏览器端可能还有一些设置此内容。