Estoy tratando de automatizar la creación de algo como esto:Django: crear la matriz de entrada HTML usando una forma Django
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
Por ciclismo a través de un rango en el formulario. He estado tratando de cosas como esta, junto con varias otras variaciones:
# in a model class
for i in range(1, prim+1):
self.fields['asdf'] = forms.CharField(label=i)
# in the template
<form action='#' method='post'>
{{form.as_p}}
</form>
Pero no he tenido ninguna suerte sin embargo.
¿Cómo puedo automatizar una serie de entradas?
** editar ** Para aclarar, finalmente, tengo que ser capaz de acceder a los campos de la plantilla de la siguiente manera:
{% for input in form.fields.asdf %}
{{input}}
{% endfor %}
que entonces es de esperar que me obtener la lista de entrada original se muestra arriba .. .
Su bucle está creando un nuevo CharField con una etiqueta no válida (no puede ser un número entero) y sobrescribiendo self.field ['asdf']. No estoy seguro de qué es lo que intentas hacer. ¿Quiere decir que usa el atributo de opciones? –
Sí, esa versión particular de ella simplemente sobrescribe. Antes tenía código más complicado que se intentó crear listas y/o diccionarios, pero tampoco pude hacer que funcionaran. – Brant
Quizás podría hacer que su etiqueta sea 'asdf' o algo así, luego recorra todos los campos, dándole salida si '{% ifequal field.label 'asdf'%}' coincide, y luego use 'forloop.counter' para mostrar 1, 2 , 3, etc. Actualicé mi respuesta a continuación. –