我正在通过我的网站的管理部分上传一个文件,我希望能够通过我的网站公开下载该文件。我知道我上传的文件已成功上传,因为我可以在 App Engine Blob 存储中查看它。我无法找出以下代码不起作用的地方:
我的模型的相关部分:
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 %}