如何通过更改此部分设置django的动态下载路径:
(settings.MEDIA_ROOT, 'folder/path/file.pdf')
with open(os.path.join(settings.MEDIA_ROOT, 'folder/path/file.pdf'), 'rb') as fh:
response = HttpResponse(fh.read(), content_type="application/pdf")
response['Content-Disposition'] = 'filename=invoice.pdf'
return response
像这样的事情:
^{pr2}$(settings.MEDIA_ROOT, FUNCTION_RETURN_THE_PATH)
如果一个use函数我会得到很多错误,因为它需要一个字符串变量,而不是一个函数。在
在我的html中有一个用于向用户显示所有模型的
{% for printforme in print_user_charges %}
<tr>
<td>{{ printforme.invoice_number }}</td>
<td>{{ printforme.price }} €</td>
<td>{{ printforme.reason }}</td>
<td>{{ printforme.customer }} {{ printforme.customer.surname }}</td>
<td>{{ printforme.charge_date }}</td>
<td> <a href="{% url 'download_pdf' printforme.upload_pdf.id %}"> Download </a></td>
下载链接进入视图:
def DownloadPdf(request, charge_id):
with open(os.path.join(settings.MEDIA_ROOT, get_file_path), 'rb') as fh:
response = HttpResponse(fh.read(), content_type="application/pdf")
response['Content-Disposition'] = 'filename=invoice.pdf'
return response
我将pdf,base存储到用户id,如下所示:
def invoice_path_base_to_usersid(instance, filename):
return 'user_{0}/{1}'.format(instance.customer.id, filename)
所以我将pdf存储到media/user{id}/文件名.pdf在
我希望用户下载一个特定的pdf文件,当他点击当前项目。 但我不知道如何使用用户id,并把它放在打开的地方下载当前用户想要的pdf文件。在
你还没有调用函数。
最后,我找到了一个解决方案,我把它贴在这里,以帮助任何与之斗争的人。
我的主要问题是,我试图获取一个实例,在我试图加载文件之前,我没有将它传递到任何变量中。
我把打开的方法改为,我发现最后一个更清楚了。
所以答案是,如果你想在django中找到一个dynamical下载路径,你必须查询你的模型并将输出放入一个变量中。
之后,通过调用此变量,以这种方式:
您可以引用该记录的任何字段并根据需要使用它
相关问题 更多 >
编程相关推荐