2017-02-18 14 views
1

我有一個存儲file_name,file_link,is_active和上傳字段的模式。我可以通過管理網站添加PDF,但我試圖讓用戶能夠從我創建的前端網頁的新選項卡上下載PDF或查看PDF。如何允許用戶在我的靜態文件夾中在線下載或查看PDF?

目前,我創建的視圖正在獲取每個PDF的信息,以便我可以顯示名稱,鏈接等。如果我將{{pdf.file_link}}放入其中,它不會執行任何操作。

我真的很感激在這方面獲得一些幫助,這樣我就可以採集我的輪子。謝謝你在前進+

編輯:! 型號:

class HelpfulPDF(models.Model): 
    file_name = models.CharField(max_length=256) 
    file_link = models.FileField(upload_to='pdfs') 

    uploaded_on = models.DateField(auto_now=True) 

    is_active = models.BooleanField(default=True) 

    def __str__(self): 
     return "{} - {}".format(self.id, self.file_name) 

查看: 正如你可以在視圖中看到的,我只得到從模型的日期。我對實際的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 %} 
+3

你應該添加一些代碼到這個問題。看了之後,我們可以幫助你! –

+1

顯示您的models.py,views.py和some_template.html – TitanFighter

+0

對不起,不添加代碼哈哈。 模型: –

回答

0

如果您鏈接到PDF文件的工作(嘗試在你的瀏覽器,看看會發生什麼),那麼它應該是可以做到的這相當於在模板:

<a href={{ your_link }}></a>

添加target="_blank"屬性有它在另一個標籤頁中打開。

如果您希望點擊下載,可以將一個download屬性添加到錨點元素。

瀏覽器應該自動處理打開或下載PDF。如果沒有,那麼你的鏈接無效(最有可能的原因),或者(因爲你可能知道它的可能性很小),你的服務器在響應中發送了錯誤的內容類型頭(你可以從瀏覽器中檢查Chrome上的「網絡」標籤中的開發控制檯)。

相關問題