Django 如何允许用户在线下载或查看我在静态文件夹中托管的PDF?
我有一个模式存储文件名,文件链接,是活动的和上传的字段。我可以通过管理网站添加PDF,但我试图让用户能够下载PDF或在我创建的前端网页的新选项卡上查看PDF 目前,我创建的视图正在获取每个PDF的信息,这样我就可以显示名称、链接等。如果我将{{PDF.file_link}}放入一个文件夹中,它不会做任何事情 我真的很感激在这方面得到一些帮助,这样我就可以停止旋转我的轮子。提前谢谢你+ 编辑: 型号: 视图: 正如您在视图中看到的,我只从模型中获取日期。我没有做任何特殊的实际PDF尚未。这就是问题所在Django 如何允许用户在线下载或查看我在静态文件夹中托管的PDF?,django,Django,我有一个模式存储文件名,文件链接,是活动的和上传的字段。我可以通过管理网站添加PDF,但我试图让用户能够下载PDF或在我创建的前端网页的新选项卡上查看PDF 目前,我创建的视图正在获取每个PDF的信息,这样我就可以显示名称、链接等。如果我将{{PDF.file_link}}放入一个文件夹中,它不会做任何事情 我真的很感激在这方面得到一些帮助,这样我就可以停止旋转我的轮子。提前谢谢你+ 编辑: 型号: 视图: 正如您在视图中看到的,我只从模型中获取日期。我没有做任何特殊的实际PDF尚未。这就是问题
@login_required()
def help_center_view(request):
data = dict()
data['userprofile'] = request.user.userProfile
data['get_pdfs'] = HelpfulPDF.objects.filter(is_active=True)
return render(request, 'help_center.html', data.items())
模板:
{% extends 'base.html' %}
{% load staticfiles %}
{% block content %}
<hr>
<div class="text-center">
<b>Please look at the below PDF's.</b> <i>(You can view in browser or download to your computer)</i>
</div>
<hr>
<br><br>
<div class="text-center">
{% if get_pdfs %}
{% for each_pdf in get_pdfs %}
<div style="display: inline-block; width:275px; height: auto; border: thin grey solid; border-radius: 15px ">
<br>
{% if each_pdf.file_name %}
<h6>{{ each_pdf.file_name }}</h6>
{% else %}
<h6>Helpful PDF</h6>
{% endif %}
<hr>
<div style="margin-top: 13em">
<hr>
<button class="btn-primary btn-sm">Download PDF</button>
<a href="#"><button class="btn-primary btn-sm">View PDF Online</button></a>
</div>
<br>
</div>
{% endfor %}
{% else %}
<h4>There are no PDF's to display at this time.</h4>
{% endif %}
</div>
{% endblock %}
{%extends'base.html%}
{%load staticfiles%}
{%block content%}
请看下面的PDF。(您可以在浏览器中查看或下载到您的计算机)
{%if get_pdfs%}
{get_pdf%中每个_pdf的百分比为%}
{%if每个_pdf.file_name%}
{{each_pdf.file_name}
{%else%}
有用的PDF
{%endif%}
下载PDF
{%endfor%}
{%else%}
此时没有要显示的PDF。
{%endif%}
{%endblock%}
如果你的pdf文件链接有效(试着在浏览器中找到它,看看会发生什么),那么应该可以在模板中执行类似的操作:
添加target=“\u blank”
属性,使其在另一个选项卡中打开
如果希望在单击时下载锚元素,可以向锚元素添加download
属性
浏览器应能自动打开或下载PDF。如果不是,则说明您的链接无效(最有可能的原因)或(可能性较小,因为您可能知道),您的服务器在响应中发送了错误的内容类型标题(您可以在Chrome上网络选项卡的浏览器开发控制台中检查该标题)。如果您的pdf文件链接有效(尝试在浏览器中访问它,看看会发生什么),然后应该可以在模板中执行类似的操作:
添加target=“\u blank”
属性,使其在另一个选项卡中打开
如果希望在单击时下载锚元素,可以向锚元素添加download
属性
浏览器应自动处理打开或下载PDF的操作。如果不是,则可能是您的链接无效(最可能的原因)或(不太可能,因为您可能知道它)您的服务器在响应中发送了错误的内容类型标题(您可以从Chrome上网络选项卡的浏览器开发控制台中检查).您可以创建一个视图来代理PDF文件并返回特定标题,请参见以下答案:您可以创建一个视图来代理PDF文件并返回特定标题,请参见以下答案:您应该在问题中添加一些代码。查看后,我们可以帮助您!显示您的models.py、views.py和一些\u template.ht我很抱歉没有添加代码。哈哈。模型:我将代码添加到原始问题中。感谢您查看。您应该在问题中添加一些代码。查看后,我们可以帮助您!显示您的models.py、views.py和一些_template.htmlSorry关于没有添加代码。哈哈。模型:我将代码添加到原始问题中。谢谢谢谢你看一看
{% extends 'base.html' %}
{% load staticfiles %}
{% block content %}
<hr>
<div class="text-center">
<b>Please look at the below PDF's.</b> <i>(You can view in browser or download to your computer)</i>
</div>
<hr>
<br><br>
<div class="text-center">
{% if get_pdfs %}
{% for each_pdf in get_pdfs %}
<div style="display: inline-block; width:275px; height: auto; border: thin grey solid; border-radius: 15px ">
<br>
{% if each_pdf.file_name %}
<h6>{{ each_pdf.file_name }}</h6>
{% else %}
<h6>Helpful PDF</h6>
{% endif %}
<hr>
<div style="margin-top: 13em">
<hr>
<button class="btn-primary btn-sm">Download PDF</button>
<a href="#"><button class="btn-primary btn-sm">View PDF Online</button></a>
</div>
<br>
</div>
{% endfor %}
{% else %}
<h4>There are no PDF's to display at this time.</h4>
{% endif %}
</div>
{% endblock %}