Jestem raczej nowy dla Django i używam Django 1.0. mam to:
forms.py:Formularz Django z tylko BooleanField
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...
Problemem jest to, że forma nie jest ważna, chyba że jest zaznaczone pole wyboru, więc nie wydaje być sposobem na zdobycie fałszywej wartości z pola. O ile mogę zrozumieć z the docs, powinien działać. Działa, jeśli dodaję CharField do mojego formularza ...
Czy coś tu nie rozumiem, czy jest to błąd? (Tak, mam google ale nic nie znalazłem odpowiedniego)
Aktualizacja: Jak sugeruje @Dominic Rodger, próbowałem dodanie pola ukrytego
dummy = forms.CharField(initial='dummy', widget=forms.widgets.HiddenInput())
i sprawia, że postać ważna. To obejście pozwala mi teraz przejść, ale nadal byłoby interesujące wiedzieć, czy coś nie rozumiem ...
Huh. Brzmi jak błąd. Czy możesz obejść to za pomocą ukrytego pola? –
Było kilka zgłoszeń błędów, które brzmią trochę podobnie - zobacz http://www.google.co.uk/search?q=django+checkbox+forms+poprzez –
Spróbuję. Podejrzewam, że formularz nie lubi pustych danych, ponieważ przeglądarka nie będzie zawierała pola wyboru niezaznaczonego. – Niklas