私は Django プロジェクトを行っており、Projectsというモデルがあります。このモデルには、ファイルが /media/files/YEAR/MONTH/DATE/ にアップロードされる FileField があります。
settings.py:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
models.py:
class Project(models.Model):
...
file_upload = models.FileField(upload_to='files/%Y/%m/%d', max_length=100, null=True, blank=True, default='')
テンプレート:
...
{% if project.file_upload %}
<tr>
<td>File</td>
<td><a href="{{ project.file_upload.url }}">{{ project.file_upload.name }} (Size: {{ project.file_upload.size|filesizeformat }})</a></td>
</tr>
{% endif %}
...
ファイルへのリンクは次のようになります: /media/files/2016/05/25/picture.pngまたは/media/files/2016/05/25/report.pdf
現在、リンクをクリックするたびに 404 page not found が表示されます。もちろん、パスがurls.pyにないためですが、通常は url にビューを追加するため、単一のファイルでそれを行う方法がわかりません。必要ありません。
そのファイルを取得する方法をURL(およびおそらくビュー)でDjangoに伝えるにはどうすればよいですか? リンクをクリックして、ブラウザで画像/pdf を表示するか、単にファイルをダウンロードできるようにしたいと考えています。