BooleanField vs CharField en modelos Django

En mi modelo de aplicación, tengo un BooleanField:

campaign = models.BooleanField(default=False, db_index=True,
    verbose_name=_('processed'), help_text=_('Campaign or not ?'))

Utilizo esto para distinguir entre dos cosas. Entonces, pensé en enviar este valor como oculto de un formulario html:

<input type="hidden" name="campaign" value="True or False" />

pero parece que los formularios envían cadenas y quiero convertir esa cadena en un Boolean. Por supuesto, puedo reescribir el modelo, convertirlo en un CharField con un default='True or False' valor, pero eso no parece muy elegante.

¿Hay alguna forma más djangoica de hacer esto?

preguntado el 08 de noviembre de 11 a las 13:11

1 Respuestas

los formularios envían cadenas y quiero convertir esa cadena en un booleano.

Todos los datos en request.POST vienen como cadenas o listas de cadenas. Debe convertirlo usted mismo o usar formularios de django (preferido) que hacen el trabajo por usted.

Con los formularios de django, puede reemplazar el widget cuando inicie formularios.

class MyForm(forms.ModelForm):

    campaign = forms.BooleanField(widget=forms.HiddenInput())

Más información sobre los formularios de django

respondido 08 nov., 11:17

Lo siento, pero no lo sigo. Si hago esta anulación, ¿acepta el <input type = "hidden" name = "campaign" value = "True or False" />, que es básicamente una cadena, de mi formulario html? - usuario1035693

Actualicé mi respuesta. Básicamente, los formularios de django hacen la conversión por usted, por lo que no necesita preocuparse por ello. También le permite escribir sus propias reglas de conversión. - Andrey Fedoseev

django puede ayudarlo a generar el html para sus formularios. ver el enlace del documento en la publicación de arriba - segundo

gracias por su respuesta, lo intentaré después de leer los documentos de los formularios :) - user1035693

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.