2016-03-23 14 views
0

私は、この質問の派生物は既に尋ねられていることを知っています。しかし、これらの質問は時代遅れであり、私は新しいバージョンのいくつかの新しい答えを聞きたいと思います。djangoでファイルをダウンロードするにはどうすればいいですか?

私にはモデルがあり、その中にファイルフィールドがあります。

class MyModel(models.Model): 
    field = models.FileField() 

私はジャンゴの管理パネルを使用して、このモデルを使用してファイルをアップロードすることができますし、私はMEDIA_ROOT設定変数とその場所を設定することができます。しかし、私はビューでこのファイルをダウンロードすることはできません。 URLを指定しようとしましたが、通常は「404が見つかりません」というエラーが表示されます。ここ

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の定義が存在しないためです。

どうすればこのファイルをダウンロードできますか?

ジャンゴ1.8.7、Pythonの3.4.3、Ubuntuの開発では14.04

+1

を得るためにこれを行うことができます。 MEDIA_URLのMEDIA_ROOTからファイルを提供するようにWebサーバー(Djangoではなく)を構成する必要があります。 –

+0

@DanielRoseman Webサーバーの設定方法に関するドキュメントや謝辞を教えてください。 – Bora

答えて

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) 
関連する問題