El flujo se ve así:
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
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/" }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.