Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

122
Vistas
Cómo obtener valor de la vista de Django en la función de éxito de Ajax

Tengo una aplicación django donde un usuario puede cargar un archivo en el formulario de envío. Cuando se cargue el archivo, el programa obtendrá los nombres de las columnas del archivo csv y los mostrará en la plantilla de Django.

Estas son mis opiniones

 def handle_new_file(request): if (request.method == 'POST'): form = NewFileForm(request.POST, request.FILES) if form.is_valid(): csv_file = request.FILES['csv_file'] fs = FileSystemStorage() file_name = fs.save(csv_file.name, csv_file) file_url = f"./media/file_uploads/{file_name}" print(file_name) print(file_url) cols = get_column_names(file_url) form.save() return HttpResponse(cols)

Si bien la vista anterior se llama con éxito en el envío del formulario, no puedo pasar los datos de esta cols a la plantilla. Aquí está mi código Ajax

 function upload(event) { event.preventDefault(); var data = new FormData($('form').get(0)); $.ajax({ url: $(this).attr('action'), type: $(this).attr('method'), data: data, cache: false, processData: false, contentType: false, success: function (data) { alert(data); } }); return false; } $(function () { $('#new_form').submit(upload); });

¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede hacer uso de un JsonResponse [Django-doc] donde devuelve el resultado como un blob JSON:

 def handle_new_file(request): if request.method == 'POST': form = NewFileForm(request.POST, request.FILES) if form.is_valid(): csv_file = request.FILES['csv_file'] fs = FileSystemStorage() file_name = fs.save(csv_file.name, csv_file) file_url = f"./media/file_uploads/{file_name}" print(file_name) print(file_url) cols = get_column_names(file_url) form.save() return JsonResponse({'cols': cols})

luego, en la llamada AJAX, puede acceder al objeto con:

 $.ajax({ # … success: function (data) { console.log( data.cols ); } });

Por supuesto, en realidad procesa data.cols y probablemente no registre el contenido de la lista.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda