2009-05-07 11 views
13

Tengo una vista de Django que devuelve HttpResponse con un tipo MIME especial para hacer que el navegador del usuario "descargue" el archivo en lugar de verlo en el navegador. El problema es que el nombre de archivo predeterminado que se guardará la respuesta es la URL a la que el usuario intentó acceder.Hacer que la respuesta de retorno de Django sea un "nombre de archivo diferente"

¿Hay alguna manera de incluir un nombre de archivo predeterminado en el objeto HttpResponse o tengo que redirigir a una URL diferente para que esto suceda?

Respuesta

27

Hay un ejemplo relevante en el docs:

from django.http import HttpResponse 

def some_view(request): 
    # Create the HttpResponse object with the appropriate headers. 
    response = HttpResponse(mimetype='application/pdf', <snip>) 
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 
    return response 
+0

nota menor: se necesita comillas alrededor del nombre de archivo o navegadores utilizará "download.bin". Es decir: filename = "somefilename.pdf" – vrplumber

Cuestiones relacionadas