發佈未選中的複選框值我在一個Django的形式(的Django V1.2)張貼複選框的狀態查找的麻煩。麻煩在Django
這裏是我的模型中場:
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 2012-04-13 18:25:50
問題可能是你的意見,你如何收集你的數據? – zallarak 2012-04-13 19:28:12
@cfedermann表單正在驗證。我在表單驗證後打印'request.POST'。它打印'u'subscribe':[u'on']'。 ModelForm沒有什麼特別的。一些乾淨的函數用於「訂閱」以外的字段。我也在'__init__'中將一些樣式應用於小部件。就這樣。 @zallarak我收集'request.POST'數據和保存這樣的形式:'SubscriberForm(request.POST,實例=用戶).save()' – vkb001 2012-04-18 15:30:40