Django下载的文件名

时间:2013-12-10 10:44:22

标签: python django view download

我使用一个简单的视图类来通过其pk“强制下载”文件。文件下载的名称出来是pk。我希望它是原始文件名,就像在服务器上一样。 我该怎么做?

*我是django的新手

这里是视图的代码

class GetFileContent(View):
def get(self,request, userName, pk):
    user = User.objects.filter(username = userName)
    filtered = File.objects.filter(pk = pk, published=True, file_owner = user)
    data = filtered[0].content
    return HttpResponse(data, content_type='application/force-download')
    pass

1 个答案:

答案 0 :(得分:8)

您需要在响应中设置文件名:

response = HttpResponse(data, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="{}"'.format(filename)
return response

您需要找到一种方法来确定所需的文件名(例如,通过将其存储在数据库中以及查找)。