2012-11-07 61 views
1

我有一个名为Advertisement的模型。该模型具有文本字段,标题字段和文件字段。django - 将模型的文件渲染为模板

我成功地将这3个字段保存到模型中。

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

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

你想做什么?在HTML页面内呈现PDF? –

+0

是的! :d。我只想要pdf可下载。我现在会更新我的代码 – doniyor

回答

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)或强制它作为attachment从Django生成PDF。

+0

我不想将整个html页面渲染为pdf!这不是我想要的。我只想将PDF文件渲染到HTML页面,以便用户可以点击并下载PDF文件。没有更多 – doniyor

+0

好吧谢谢,开放或下载PDF几乎相同,所以开放也很好。所以我的视觉代码是好的? – doniyor

+0

视图看起来不错。 – Williams