Python for tutorial.
Vamos a trabajar con formularios. Haciendo lo mismo de formas diferentes.
Mediante un doble bucle for queremos agrupar los inputs de un formulario
según el atributo ordenamiento
. Esto generará posteriormente varios fieldset
dependiendo del ordenamiento deseado.
Desde otra parte de la aplicación recibimos un objeto form
con los siguientes atributos:
**fields:**
es un listado de todos los campos
que encontraremos en el formulario.
**ordenamiento:**
es un listado que contiene varios listados dentro.
Cada uno de estos listados corresponden a un fieldset del HTML.
En este ejemplo usaremos el típico doble bucle que se emplean en otros lenguajes como PHP o JavaScript.
def fieldset_form(form):
"""Funcion que devuelve el objeto form
con los fieldsets del formulario HTML"""
campos = []
# Recorremos el primer nivel de ordenamiento,
# donde encontramos todos los fieldsets
for campos_fieldset in form.ordenamiento:
fieldset = []
# Ahora recorremos cada fieldset para saber
# los campos que lo componen
for campo_fieldset in campos_fieldset:
fieldset.append(form.fields[campo_html])
campos.append(fieldset)
form.fieldsets = campos
return form
En este ejemplo usaremos el bucle al modo python.
def fieldset_form(form):
"""Funcion que devuelve el objeto form
con los fieldsets del formulario HTML"""
campos = [[form.fields[item] for campo_fieldset in campos_fieldset] for campos_fieldset in form.ordenamiento]
#
# En este ejemplo se recorren los dos formularios
# y guardan las variables en la misma linea.
# El primer bucle for equivale al segundo del ejemplo anterior,
# el de "campos_fieldset", mientras que el segundo bucle for
# equivale al primero del ejemplo anterior, el de
# "form.ordenamiento".
#
# "form.fields[item]" equivale a "fieldset.append(form.fields[campo_html])"
# en el ejemplo anterior.
#
# Finalmente, fijate en los cochetes "[]". Son para decirle que debes devolver
# el resultado de dicho bucle como si fuera una lista.
form.fieldsets = campos
return form