OK、だから私はここで何かが完全に欠けているに違いない...
明確にするために、これはDjango 1.9.7を使用しています
私のモデルにはフィールドがあります:
prop_image = models.ImageField(upload_to=settings.MEDIA_ROOT, null = True, blank = True, max_length=500)
設定をインポートしたので、ここに問題はないと思います。
とはいえ、私の設定には次のものがあります。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_URL = '/perform/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'perform/media')
メディアは次の場所に保存されます。
PerformPy/perform/media/
(perform
はアプリ名)
BASE_DIR は、ルート ディレクトリへの絶対パスPerformPy
です。
私が使用しているurls.pyは次のとおりです(これが問題だと思います):
urlpatterns = [ ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
最後に、次のようにテンプレートで使用しようとした行はindex.html
すべて 404 エラーです (特に明記されていない限り)。
- src="/perform/media/{{prop.prop_image | filename }}" (テンプレート タグを使用してファイル名を除外します)
- src="{{MEDIA_URL}}/{{prop.prop_image | ファイル名}}"
- src="{{MEDIA_ROOT}}/{{prop.prop_image | ファイル名}}"
- src="{{MEDIA_ROOT}}/{{prop.prop_image.url}}" [ERR_NAME_NOT_RESOLVED]
- src="{{MEDIA_URL}}/{{prop.prop_image.url}}" [ERR_NAME_NOT_RESOLVED]
- src="{{prop.prop_image.url}}
- src="/perform/media/{{prop.prop_image.url}}
- src="{{prop.prop_image}} [ローカル リソースの使用は許可されていません]
- src="/{{prop.prop_image}}"
- src="perform/media/{{prop.prop_image}}"
- src="perform/media/{{prop.prop_image_url}}"
どんな考えや提案も非常に役に立ちます!私はこれにかなり慣れていないので、ばかげた間違いを犯した可能性があります。