如何设置 django 保存通过 reportlab 创建的 pdf 的目录?

How to set the directory where django saves the pdf's created through reportlab?

我正在通过 django 视图创建 pdf,使用 ReportLab API 动态使用用户输入。以下是我实现的代码:

 from reportlab.pdfgen import canvas

 p = canvas.Canvas(name)             #create pdf object
 p.drawString(100, 100, b)           #variable b being the user input
 p.showPage()
 p.save() 

pdf 保存在项目文件夹中。如何设置 pdf 的保存路径?

创建 canvas 时,指定一个文件名,路径为:

p = canvas.Canvas(path + name)

如果在文件名前包含路径,文件将保存在该位置。为了良好的组织,我建议在 MEDIA_ROOT(如 settings.py 中指定)中为您的 PDF 文件创建一个单独的目录。例如:

p = canvas.Canvas(MEDIA_ROOT + 'pdf/file_name.pdf')

或者,更好的是,在您的 settings.py 中,为您的 PDF 位置定义一个新常量:

PDF_ROOT = MEDIA_ROOT + 'pdf/'

然后到处使用它:

p = canvas.Canvas(PDF_ROOT + 'file_name.pdf')