django - 将模型的文件呈现给模板

时间:2012-11-07 15:53:44

标签: python django file render

我有一个名为广告的模型。此模型具有文本字段,标题字段和文件字段。

我成功将所有这三个字段保存到模型中。

现在我需要在模板中显示它们。我的愿景是:

ads = Advertisement.objects.all()
return render_to_response('page.html', {'ads':ads},context_instance=RequestContext(request))

并在我的page.html中:

{% for each_ad in ads %}
<p>{{each_ad.title}}</p>
<p>{{each_ad.text}}</p>
<p><a href="/ads/{{each_ad.file_pdf}}>{{each_ad.file_pdf.name}}</a></p>
{% endfor %}

这看起来是对的吗?如果没有,请告诉我我可以学习的方式。谢谢!

1 个答案:

答案 0 :(得分:3)

PDF链接是否下载取决于用户的浏览器。

添加target="_blank"会在新窗口/标签中打开pdf:

<p><a href="/ads/{{each_ad.file_pdf}}" target="_blank">{{each_ad.file_pdf.name}}</a></p>

要确保始终在每个环境中下载都比较困难,您需要设置.htaccess(如果您使用的是apache,请执行以下操作:Force a file or image to download using .htaccess)或强制它为从Django生成PDF的attachment