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:
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: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)
Código:
Pero claro, salta un error diciendo que id_cuenca no esta definido, y lo necesito para guardarlo en la db.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()
Muchas gracias!