【发布时间】:2012-04-14 03:40:49
【问题描述】:
我在 Django 表单 (Django v1.2) 中发布复选框状态时遇到问题。
这是我模型中的字段:
subscribe = models.BooleanField(default=False, verbose_name="Subscribe")
在相关模板文件中:
{{ form.subscribe }}
这会使复选框最初处于未选中状态。但是当我发布表单时(不涉及其他任何内容),django 在request.POST 中发送u'subscribe': [u'on']。也就是说,无论复选框是否被选中,响应总是包含u'subscribe': [u'on']。
不勾选复选框时,模板中的<input>标签呈现为<input type="checkbox" name="subscribe" id="id_subscribe" />
并且,当复选框被选中时,它会呈现为<input type="checkbox" name="subscribe" id="id_subscribe" checked="checked" />
我这里有什么遗漏吗?
【问题讨论】:
-
表单验证后你会得到什么? form.cleaned_data['subscribe'] 中的值是否会根据复选框状态而变化?您可以发布 ModelForm 声明吗?
-
问题可能出在您的观点中,您是如何收集数据的?
-
@cfedermann 表单正在验证。我在表单验证后打印
request.POST。它打印u'subscribe': [u'on']。 ModelForm 没有什么特别之处。subscribe以外的字段的一些干净功能。我还在__init__中将一些样式应用于小部件。就这样。 @zallarak 我从request.POST收集数据并保存如下表格:SubscriberForm(request.POST, instance=user).save()
标签: python django checkbox web