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

621
Visualizações
Django - descargar archivo sin recargar la página

El flujo se ve así:

  1. el usuario está llenando el formulario
  2. el formulario se pasa al servidor por ajax
  3. el formulario se guarda en db, luego se crea el pdf con los datos del formulario y se guarda en la carpeta de la aplicación (probablemente un mal movimiento aquí...)
  4. el éxito de ajax hace que la página agregue un botón 'Descargar' con un valor igual al nombre del pdf actual, por lo que el botón 'Descargar' aparece para el usuario
  5. Si el usuario presiona el botón, se descargará el mismo pdf que se acaba de guardar.
  6. Actualizar la página hace que el botón desaparezca.

Me he quedado atascado en el punto 5. He creado otro ajax (para evitar recargar la página) vinculado al botón Descargar. Le pide correctamente al servidor que busque el archivo, crea un objeto de archivo django: pdf_file = File(open(file_path, 'rb')) y crea una HttpResponse con archivo y content_type='application/pdf' o 'application/download' . response['Content-Disposition'] es un attachment .

Luego, el ajax devuelve la respuesta, solo que no lo hace. El servidor no genera ningún error, pero se llama a la función de error ajax.

He leído que la descarga con ajax no es posible. ¿Me podrías ayudar un poco para aclararlo? Si los fragmentos anteriores no están claros, proporcionaré más código. Pitón 3.5, Django 1.10

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Gustar

 window.location.href = "/url/to/downloadfile/"

en javascript después del éxito del formulario de publicación. O

 #html <button onclick="myfiledownload()">Download</download> #javascript function myfiledownload(){ window.location.href = "/url/to/downloadfile/" }
about 4 years ago · Santiago Trujillo Relatório

0

En lugar de usar ajax para descargar el archivo, vincule el botón a un enlace de descarga donde se puede alojar el archivo

https://www.misitioweb/descargar/?fileid=3247023

Al menos debe separar su archivo en una raíz de medios. Nota: en producción, tendrá que usar un cdn para alojar sus archivos estáticos.

about 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