2012-11-02 70 views
0

我有通過我的網站的管理部分上傳文件,我希望能夠通過我的網站公開下載。我知道我上傳的文件已成功上傳,因爲我可以在App Engine Blob存儲中查看它。我無法找出什麼不與下面的代碼工作:使用Django文件傳輸時無法下載文件

我的模型的

相關部分:

class CalendarEvent (models.Model): 
    file = models.FileField(upload_to='uploads/%Y/%m/%d/%H/%M/%S/') 
我views.py文件

相關的代碼是:

def calendar(request): 
    events = CalendarEvent.objects.exclude(start__lt=datetime.datetime.now()).order_by('start') 
    return render_to_response('home/calendar.html',{'events': events},context_instance=RequestContext(request)) 

def download_handler(request, pk): 
    upload = get_object_or_404(CalendarEvent, pk=pk) 
    return serve_file(request, upload.file, save_as=True) 

模板中的相關代碼:

{% for e in events %} 
    {% url Calendar.views.download_handler pk=e.pk as fallback_url %} 
    <a href="{% firstof e.file|public_download_url fallback_url %}">Download</a> 
{% endfor %} 
+0

你觀察到了什麼症狀? –

+0

@JameySharp {%firstof e.file | public_download_url fallback_url%}解決爲空,因此我的下載鏈接無用。 – zpesk

回答

0

你對於自己download_handler視圖名稱應該是<appname>.views.download_handler。您可能沒有一個名爲「e」的應用程序,並在其中顯示適當的視圖。

+0

我將它更改爲{%url Calendar.views.download_handler pk = e.pk as fallback_url%},但它仍然不能正常工作:( – zpesk

+0

@zpesk,模塊名稱通常都是小寫的,如果要導入'在你的Python源代碼中使用download_handler函數,你將從哪個模塊名稱導入它?然後使用該名稱。 –

+0

應用程序名稱是「日曆」 - 我不確定還有其他什麼東西?任何建議? – zpesk