Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2015, 19:02
elcaiaimar
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 10 años, 2 meses
Puntos: 0
Pasar variables entre funciones de views

Hola!

Me gustaría saber como pasar una variable de una funcion def a otra en views.py
La cuestión es que en una función recibo dos parámetros por url, como se muestra abajo:

Código:
def EdicionCuenca(request, id_obra, id_cuenca):

if 'formularioarchivoimbornales' in request.POST:
        formularioarchivoimbornales = UploadForm(request.POST, request.FILES)
        if formularioarchivoimbornales.is_valid():
            #Se guarda la ruta del fichero en la tabla Archivo y en static
            newdoc = Archivo(docfile = request.FILES['docfile'])
            newdoc.save()
            #Se coge el fichero para aplicarle la funcion imbornal_files
            imbornal_files(request.FILES['docfile'])

            #utilizamos este metodo para darle valor al parametro y poder enviar el formulario.
            url = reverse('edicioncuenca', kwargs={'id_obra': id_obra, 'id_cuenca': id_cuenca})
            return HttpResponseRedirect(url)
Sin embargo tengo otra función que no recibe ningun parametro por url, ni envía nada a ningún template, porque simplemente lee un fichero csv y guarda sus datos como registros en la base de datos. Diche función es la que viene:

Código:
def imbornal_files(f):
    reader = csv.DictReader(f, delimiter=',')
    for row in reader:
        idcuenca=id_cuenca
        codimbornal=row['codimbornal']
        coorx=row['coorx']
        coory=row['coory']
        tipo=row['tipo']
        origen=row['origen']
        observaciones=row['observaciones']
        pnt=Point(float(coorx),float(coory))

        my_file = Imbornal(gid_cuenca_id=idcuenca, codimbornal=codimbornal, coorx=coorx, coory=coory, tipo=tipo,
            origen=origen, observaciones=observaciones, geom=pnt)
        my_file.save()
Pero claro, salta un error diciendo que id_cuenca no esta definido, y lo necesito para guardarlo en la db.

Muchas gracias!