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!