2015-04-24 59 views
0

我試圖創建一個按鈕來下載保存爲模型一部分的文件。下面Django FileField將保存的文件檢索到超鏈接

代碼:

型號

class ResourceFile(models.Model): 
resourceID = models.ForeignKey(Resource) 
fileTitle = models.CharField(max_length=128) 
fileDescription = models.CharField(max_length=256) 
fileObject = models.FileField(upload_to='resourceFile') 
active = models.BooleanField(default=True) 

模板 - 的RFile是實例的resourcefile。

<a id="rfile-{{ rfile.id }}" href="{{ rfile.fileObject.url }}" download><button type="button">{{ rfile }}</button></a> 

當按鈕被點擊時,我得到一個文件未找到異常。 任何想法?

+0

在設置中是否正確定義了「MEDIA_ROOT」和「MEDIA_URL」? – SaeX

+0

我將MEDIA_ROOT設置爲'media'。在我的根目錄中有一個名爲'media'的文件夾,這在將文件保存到那裏時起作用 – Malekai

回答

0

我將此添加到我的urls.py文件 如果settings.DEBUG: urlpatterns.append(URL(R '^媒體/(P *)$?',「django.views.static。服務',{'document_root':settings.MEDIA_ROOT}))

它的工作原理。不需要編輯模板。沒有MEDIA_URL,rfile.fileObject.url就足夠了。

0

試試這個。這可能可能是因爲缺少靜態url路徑。

{{ STATIC_URL }}{{ rfile.fileObject }} 
+0

它們不會被保存到我的靜態文件文件夾中,它們將被保存到項目的'Media'文件夾中。 – Malekai

相關問題