Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

125
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda