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

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

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

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

Python

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

Q&A

解決済

1回答

1619閲覧

Django Media内にあるファイルの表示

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Python

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

0グッド

0クリップ

投稿2020/03/20 09:31

編集2020/03/20 09:53

実現したいこと

mediaファイルに画像があるのですが、なぜか行事することが出来ません。
どなたかご教授頂けると幸いです。
可能性でも良いのでお願いします。

実行結果

<p>{{ post.thumbnail }}</p>においては、thumbnail/1642869-225x150-MM-100.jpgと表示されているのに、なぜか画像が表示されません。 media/から始めれば良いのかとも思いましたが、 <img src="{{post.thumbnail}}"> <img src="media/thumbnail/1642869-225x150-MM-100.jpg"> 共に表示がされません。 どなたかよろしくお願いします。

該当のソースコード

settting

1STATIC_URL = '/static/' 2 3# 画像保持 4MEDIA_URL = '/media/' 5MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

HTML

1{% block content %} 2 <br> 3 {% for post in object_list %} 4 <div class="container"> 5 <span class="box-title">{{ post.title }}</span> 6 <p>{{ post.thumbnail }}</p> 7 <img src="{{post.thumbnail}}"> 8 <img src="media/thumbnail/1642869-225x150-MM-100.jpg"> 9 <p>{{ post.summary }}</p> 10 <p>{{ post.post_time }}</p> 11 <a href="{% url 'blog:index' post.status post.id %}" class="btn-box">Read More</a> 12 </div> 13 <br> 14 {% endfor %} 15 16{% endblock %}

view

1class Sample(LoginRequiredMixin, TemplateView): 2 model = Post 3 template_name = 'blog/sample.html' 4 5 def get(self, request, *args, **kwargs): 6 context = super().get_context_data(**kwargs) 7 context['member'] = Member.objects.get(user=self.request.user) 8 context['object_list'] = Post.objects.filter(status=Status.objects.get(name=self.kwargs.get('stat'))).order_by('id').reverse() 9 10 return context

Model

1class Post(models.Model): 2 title = models.CharField(max_length=140) 3 thumbnail = models.ImageField(upload_to='thumbnail/', null=True) 4 post_time = models.DateField(null=True) 5 summary = models.TextField(blank=True) 6 contents = MarkdownxField() 7 status = models.ForeignKey(Status, on_delete=models.SET_NULL, null=True) 8 9 # 管理者画面での表示 10 def __str__(self): 11 return self.title 12 13 # 管理者画面でのプレビュー表示 14 def formatted_markdown(self): 15 return markdownify(self.contents)

mysite/url

1if settings.DEBUG: 2 urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 3 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

試したこと

{{post.thumbnail.url}}ではエラーが発生

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

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

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

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

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

llr114

2020/03/20 09:38

setting.pyのMEDIA_ROOTとMEDIA_URLの値を教えていただいてもよろしいでしょうか?
guest

回答1

0

ベストアンサー

HTML

1<img src='{{ MEDIA_URL }}{{post.thumbnail}}'>

こちらでいかがでしょうか?

投稿2020/03/20 09:59

llr114

総合スコア203

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

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

退会済みユーザー

退会済みユーザー

2020/03/20 10:07

Not Found: /blog/media/thumbnail/1642869-225x150-MM-100.jpg となってしまうのですが、なぜなのでしょうか? 場所が正しくいってくれないです。
llr114

2020/03/20 10:11

もしかしてmediaフォルダがアプリケーションの下にあったりしないでしょうか? MEDIA_URL = '/media/' なので、プロジェクトフォルダ直下のmediaを参照して、not foundになっている気がします。
退会済みユーザー

退会済みユーザー

2020/03/20 10:13

mediaフォルダは、プロジェクトと同じ階層にあります。 authentication d----- 2020/03/19 21:56 blog d----- 2020/03/20 17:33 media d----- 2020/03/19 21:56 mysite d----- 2020/03/19 21:56 static -a---- 2020/03/20 18:12 192512 db.sqlite3 -a---- 2020/03/12 14:30 647 manage.py こんな感じです
退会済みユーザー

退会済みユーザー

2020/03/20 10:15

なんどもなんども申し訳ございません。 確かに、HTMLファイルはblogフォルダ以下のtemplates/blogに存在するのですが、 mediaファイルは、アプリケーションと同階層にあります。 なぜこのような現象が生じるのか分かりません。
llr114

2020/03/20 10:19

mediaフォルダの中の構成も教えて頂いてもよろしいでしょうか? また、setting.pynのBASE_DIRの値もお伺いしたいです。
llr114

2020/03/20 10:24

追加ですみません。 if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) これが書いてあるurls.pyのファイルパスも教えて頂ければと思います。
退会済みユーザー

退会済みユーザー

2020/03/20 10:25

media\thumbnail\1642869-225x150-MM-100.jpg です。 setting.pyは、 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) このようになってます。
退会済みユーザー

退会済みユーザー

2020/03/20 10:25

mysite/urls.pyです
llr114

2020/03/20 10:28

なるほど。。。 因みに ドメイン/media/thumbnail/1642869-225x150-MM-100.jpg をブラウザの検索窓に入れた場合って、画像は表示されますでしょうか?
llr114

2020/03/20 10:40

んー、ちょっとわからないので、以下を確認してみてください。 1. setting.pyのDEBUGはTrueになっているか 2. ライブラリのpillowはインストールしているか 3. setting.pyのTEMPLATES内に'django.template.context_processors.media'があるか
退会済みユーザー

退会済みユーザー

2020/03/20 11:39

返信が遅くなり申し訳ございません。 確認したところ、3が原因でした。 何度も何度も答えて下さり本当に助かりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問