我對Django相當陌生,我使用的是Django 1.0。 我有這樣的:
forms.py:只有一個BooleanField的Django窗體
class MyForm(forms.Form):
extra_cheeze = forms.BooleanField(required=False,
initial=False,
label='Extra cheeze')
views.py:
def order_something(request):
form = MyForm(request.POST or None)
if request.method == 'POST' and form.is_valid():
# do stuff...
的問題是,除非該複選框被選中的形式是無效的,所以似乎並不成爲從現場獲得虛假價值的一種方式。 據the docs我可以理解,它應該工作。它的作品,如果我添加一個CharField到我的表格...
我誤解了這裏的東西還是這是一個錯誤? (是的,我用Google搜索,但沒有發現任何相關的)
更新:正如@Dominic羅傑的建議,我嘗試添加一個隱藏字段
dummy = forms.CharField(initial='dummy', widget=forms.widgets.HiddenInput())
這使得形式有效。這種解決方法使我現在可以繼續前進,但它仍然會很有趣,知道我是否誤解了某些東西...
呵呵。聽起來像是一個bug。你能解決它使用隱藏的領域? – 2009-10-12 11:59:34
有幾個bug報告聽起來有點類似 - 請參閱http://www.google.co.uk/search?q=django+checkbox+forms+bug – 2009-10-12 12:01:19
我會嘗試。我懷疑表單不喜歡空數據,因爲瀏覽器不會包含未選中複選框的字段。 – Niklas 2009-10-12 12:05:43