我知道这个问题的衍生物已经被问到了。但是那些问题已经过时了,我想听听新版本的一些新答案。
我有一个模型,里面有一个文件字段。
class MyModel(models.Model):
field = models.FileField()
我可以使用django的管理面板上传此模型的文件,我可以使用MEDIA_ROOT
设置变量设置其位置。但是我无法在视图中下载此文件。我试过给它的URL,但我经常得到“404 not found”错误。
def download(request):
file = # code to get the the model instance.
context = {'file': file}
return render(request, template, context)
以下是模板中的代码:
<a href="{{file.field.url}}">Download Link</a>
这会引发404错误。我知道为什么它会抛出这个错误。因为该URL没有url deffinitions。
那么,我该如何下载这个文件?
Django 1.8.7,Python 3.4.3,ubuntu 14.04
答案 0 :(得分:1)
在开发过程中,您可以执行此操作以使MEDIA_URL
处于活动状态
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)