我有一個File
模型,其中存儲path
字段的路徑在文件系統中的文件。所有文件都存儲在MEDIA_ROOT /文件中Django:生成下載鏈接
在模板中,我想爲File
對象生成下載鏈接。做這個的最好方式是什麼?我應該在django中使用靜態文件處理嗎?
TIA!
UPD
File
模型
class File(models.Model):
item = models.ForeignKey(Item)
file = models.FileField(upload_to = os.path.join(MEDIA_ROOT,'items'))
format = models.CharField(max_length = 255)
在項目的查看我執行以下操作:
files = File.objects.filter(item_id = id)
和通files
到模板
模板我用files.1.file.url
例如,仍然有不良網址像site.com/home/dizpers/...
UPD2
解決方案
我的問題是在文件的模式,在file
領域。在upload_to參數我使用絕對路徑,但必須使用相對路徑:
file = models.FileField(upload_to = 'items')
它將適用於我的自定義文件對象?不是django的File對象。 – dizpers 2012-08-08 18:56:06
我試過了。不起作用。仍然可以訪問site.com/home/dizpers/data/......./file.pdf其中'home/dizpers/...'是磁盤上文件的路徑 – dizpers 2012-08-08 18:59:55
我假設你的' File'模型仍然使用真正的藍色'FileField'而不是標準的'CharField'。沒有理由不這樣做,因爲兩者在數據庫中的存儲方式都是一樣的; 'FileField'只有一個API來處理I/O。不過,如果你只需要一個非常基本的鏈接,你可以使用'{{MEDIA_URL}}文件/ {{file_instance.path}}'。 – 2012-08-08 19:03:10