Soy bastante nuevo en Django y estoy usando Django 1.0. tengo esto:
forms.py:Formulario Django con solo un campo Boolean
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...
El problema es que la forma no es válida a menos que se marca la casilla, por lo que no parece ser una forma de obtener un valor falso del campo. Por lo que puedo entender desde the docs, debería funcionar. Funciona si agrego un CharField a mi formulario ...
¿Estoy entendiendo mal algo aquí o es esto un error? (Sí, he buscado en Google pero no encontró nada relevante)
Actualización: Como sugiere @Dominic Rodger, He intentado añadir un campo oculto
dummy = forms.CharField(initial='dummy', widget=forms.widgets.HiddenInput())
y eso hace que la forma válida. Esta solución me permite seguir adelante ahora, pero aún sería interesante saber si estoy entendiendo mal algo ...
Huh. Me parece un error. ¿Podría solucionarlo utilizando un campo oculto? –
Ha habido algunos informes de errores que suenan algo similares: consulte http://www.google.co.uk/search?q=django+checkbox+forms+bug –
Lo intentaré. Sospecho que al formulario no le gustan los datos vacíos, ya que el navegador no incluirá el campo para una casilla de verificación sin marcar. – Niklas