如何提示用户将 pdf 文件保存到他在 django 中的本地机器?

how to prompt user to save a pdf file to his local machine in django?

我是 Django 的新手,我的项目要求我在单击 link 时提示用户打开 pdf。我的本地计算机上已有 pdf 文件,不想使用 Reportlab 重新创建它。有什么办法吗?

我试过了

with open("/user/some/directory/somefilename.pdf") as pdf:
        response = HttpResponse(pdf, content_type='application/pdf')
        response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
        return response

但它返回 404 找不到页面,因为请求的 url 不在 myproject.urls

的 URLconf 中

我错过了什么?

一般情况下,当用户点击“下载”时,您可以:

- If file is not existed:
    - Generate pdf file use ReportLab as you did.
    - Store generated file to a public dir.
return HttpResponseRedirect(file_url_to_public_dir)

对我有用的方法是使用 FileSystemStorage

from django.core.files.storage import FileSystemStorage
from django.http import HttpResponse

fs = FileSystemStorage("/Users/location/where/file/is_saved/")      
with fs.open("somefile.pdf") as pdf:
    response = HttpResponse(pdf, content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="my_pdf.pdf"'
    return response

现在提示用户像往常一样保存文件!