2012-09-25 24 views
5

Quiero crear un cuestionario del tipo "llenar los espacios en blanco" en Django.Cómo crear un formulario de "completar espacios en blanco" en Django

La pregunta de ejemplo es "Coloque sus respuestas __ y __."

Básicamente, quiero una salida que reemplace los campos "__" con campos de entrada.

Además, deseo que los campos de entrada tengan el mismo 'nombre'. Ejemplo:

<input id="id_1" type="text" name="blank[]" /> 
<input id="id_2" type="text" name="blank[]" /> 

El número de campos en blanco es (puede ser) infinito. ¿Cómo hacerlo usando django.forms?

Gracias.

+1

va a saber ¿Cuántos espacios en blanco necesita en el momento de la creación de la forma? –

+4

Use formsets: https://docs.djangoproject.com/en/dev/topics/forms/formsets/ –

+0

Se desconoce el número de campos en blanco. Depende del número de "__" de la pregunta dada. Examinando conjuntos de formularios ahora, y veo cómo puedo usarlos. ¡Gracias! – CiB

Respuesta

0

Tiene una lista de campos en los que debe representar el cuestionario, según tengo entendido. Así que con la lista con este aspecto:

questions = (
    ('Place your 1 answers %s and %s.', ('field_1_1', 'field_2_2')), 
    ('Place your 2 answers %s and %s.', ('field_2_1', 'field_2_2')), 
) 

Puede crear formulario para cada campo así:

class QuizzForm(forms.Form): 
    def __init__(self, *args, **kwargs): 
     super(QuizzForm, self).__init__(*args, **kwargs) 
     for question in questions: 
      for field in question[1]: 
       self.fields[field] = forms.ChoiceField() 

y accede a los campos después de post similar a esto:

if form.is_valid(): 
    for question in questions: 
     for field in question[1]: 
      answer = form.cleanded_data.get(field) 
Cuestiones relacionadas