Это также работает для меня на 1.1, 1.0.3 и 1.0 (у меня есть эти три настройки виртуальных сред). Я проверял это только в FireFox, так что если это проблема браузера, это другое дело, но, насколько я знаю, все они обрабатывают данные POST с помощью флажков одинаково.
Вот полный код проекта, чтобы вы могли воспроизвести его на досуге и сравнить с вашим, чтобы увидеть разницу.
Настройка в Ubuntu
$ django-admin.py startproject testing
$ cd testing/
$ python manage.py startapp myfirst
Затем в папке приложения myfirst;
/ myfirst / views.py
from django.shortcuts import render_to_response
from myfirst.forms import MyForm
def testing(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
result = "valid"
else:
result = "not valid"
else:
form = MyForm()
result = "no post"
return render_to_response('test.html', {'form':form, 'result':result,})
/ myfirst / forms.py
из форм импорта django
class MyForm(forms.Form):
extra_cheeze = forms.BooleanField(required=False,initial=False,label='Extra cheeze')
/ myfirst / шаблоны / test.html
<html>
<head>
</head>
<body>
<form action="." method="POST">
{{ form }}
<input type="submit" value="test">
</form>
{{ result }}
</body>
</html>
/ urls.py
из django.conf.urls.defaults import *
from myfirst.views import testing
urlpatterns = patterns('',
(r'.*', testing),
)
Затем просто запустите проект $ python manage.py runserver и перейдите к http://localhost:8000/. На самом деле вы обнаружите, что требуемый ничего не делает с флажком, поскольку вы не можете оставить его пустым - a ' Пустой «ответ - фактически« нет ». Если вы хотите убедиться, что пользователь выбирает ответ, у вас есть несколько вариантов выбора, когда пользователь должен выбрать «да» или «нет». Вы также можете заставить их отвечать с помощью переключателей.