友達、
私は Django 1.6 を使用しており、先週 (!) Django 管理サイト経由でアップロードされた Web ページに写真を表示しようとしました。
私はこれが一般的な問題であることを知っています。私はドキュメントを読んでみましたが、これとこれのような多数の SO の質問はすべて成功しませんでした。
管理サイト経由で画像をアップロードした後、画像が次のフォルダーに存在することがわかります。
/home/ian/django/mysite/cars/media/images/1.JPG
しかし、ページが読み込まれると (または管理サイト経由で画像をアップロードした後に画像を表示しようとすると)、404 エラーが表示されます。画像のソースは次のとおりです。
<li><img src="/media/images/1.JPG" height="420"/></li>
model.pyには次のフィールドがあります。
photo = models.ImageField(upload_to='images/')
urls.pyには以下が追加されています。
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
テンプレートは次のとおりです。
{% extends "base.html" %}
<h1>Here</h1>
<p>{{ collectiondetail.title }}</p>
{% for photo in photos %}
<li><img src="{{ photo.photo.url }}" height="420"/></li>
{% endfor %}
{% endblock %}
最後に、settings.pyは次のとおりです。
STATIC_ROOT = '/home/ian/django/mysite/cars/static/'
STATIC_URL = '/static/'
MEDIA_ROOT = '/home/ian/django/mysite/cars/media/'
MEDIA_URL = '/media/'
私は何を逃したのですか?