質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2980閲覧

django 画像を登録・更新はできるが、表示されない

hiranohirano

総合スコア33

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/17 02:31

前提・実現したいこと

djangoの開発用サーバー(manage.py runserver)上で画像を表示したい。

発生している問題・エラーメッセージ

画像の登録や更新はでき、そこに画像があることはわかっているのですが、画像が表示されません。

ブラウザ上で画像アドレスをコピーすると、
http://127.0.0.1:8000/media/thumbnail/sample.jpg」と出てきます。

画像を登録すると、以下の場所(thumbnail内)に画像は保存されます。

├─myapp
│ ├─urls.py
│ ├─models.py
│ ├─views.py
│ └─templates
│ └─myapp
│ └─sample.html
├─myproject
│ ├─settings.py
│ └─urls.py
├─media
│ └─thumbnail
│  └─sample.jpg
└─manage.py

chromeのデベロッパツールのコンソールには以下のように出ています。

Failed to load resource: the server responded with a status of 404 (Not Found)

該当のソースコード

settings.py

python

1 2BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 3 4MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 5MEDIA_URL = "/media/"

models.py

python

1from django.db import models 2import os 3 4class Store(models.Model): 5 6 name = models.CharField(verbose_name='名前', max_length=255) 7  thumbnail = models.ImageField( 8 verbose_name='サムネイル', upload_to = 'thumbnail/', blank=True) 9 10 def __str__(self): 11 return self.name 12 13 def get_filename(self): 14 return os.path.basename(self.thumbnail.name) 15

templates/sample.html

html

1<img src="{{ store.thumbnail.url }}" alt="サンプル">

以上となります。
お分かりになる方、アドバイスいただけましたら幸いです。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

メインの urls.py に次のような行は記述されていますでしょうか。

python

1from django.conf import settings 2from django.conf.urls.static import static 3 4urlpatterns = [ 5 // ... 6] 7 8urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

もし urlpatterns += static(... の行を書かれていなければ、追加してから確認してみてください。

公式ドキュメントでいうと、次の部分等がご参考になるかもしれません。

投稿2018/10/22 13:31

gh640

総合スコア1407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問