0

我在 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" />

我在这里错过了什么吗?

4

1 回答 1

0

您的浏览器将值发布为“on”。这是未设置 value="blah" 属性的复选框输入的正常行为。如果即使未选中复选框,它也总是发布为“打开”,那么浏览器端可能有一些东西正在设置它。

于 2012-04-13T19:40:49.337 回答