我使用一个简单的视图类来通过其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
答案 0 :(得分:8)
您需要在响应中设置文件名:
response = HttpResponse(data, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="{}"'.format(filename)
return response
您需要找到一种方法来确定所需的文件名(例如,通过将其存储在数据库中以及查找)。