我发现在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" />
我在这里遗漏了什么吗?
答案 0 :(得分:0)
您的浏览器将值显示为“打开”。这是没有value =“blah”属性集的复选框输入的正常行为。如果它总是以“打开”发布,即使没有选中复选框,那么浏览器端可能还有一些设置此内容。