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

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

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

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

Q&A

解決済

1回答

1112閲覧

django 写真のアップロード

AAA7

総合スコア10

Django

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

0グッド

0クリップ

投稿2019/08/29 03:35

編集2019/08/29 03:36

今写真を表示しようとするコードを作ろうと思ったのですが、このように写真がうまく見れませんどうすればよろしいでしょうか。実行結果

urls.py

py

1from django.urls import path, include 2from django.contrib import admin 3from django.conf.urls import url 4urlpatterns = [ 5 path('admin/', admin.site.urls), 6 path('', include('app.urls')), 7] 8from django.conf import settings 9from django.conf.urls.static import static 10 11 12if settings.DEBUG: 13 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

py

1STATIC_URL = '/static/' 2STATICFILES_DIRS = [ 3 os.path.join(BASE_DIR, 'static') 4] 5 6MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 7MEDIA_URL = '/media/'

views.py

py

1class Home(TemplateView): 2 template_name = "home.html" 3 def get(self, request, *args, **kwargs): 4 context = super(Home, self).get_context_data(**kwargs) 5 image = Post.objects.all() 6 context['images'] = image 7 return render(self.request, self.template_name, context)

home.html

html

1{% extends 'base.html' %} 2{% block content %} 3{% for image in images %} 4 <div> 5 <img src="{{ image.picture.url }}" /> 6 </div> 7{% endfor %} 8{% endblock %}odels.py

models.py

py

1class Post(models.Model): 2 picture = models.ImageField(upload_to='media/menu_file')

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

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

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

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

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

guest

回答1

0

ベストアンサー

ImageFieldを使う場合は、Pillowというパッケージが必要なのでpip install Pillowをしておきましょう。
画像が表示されていなければ画像アドレスをコピーして検索にかけてみてください。
Page not found(404)エラーが出た場合はmediaディレクトリが公開されていないということなので

urls.py

python

1from django.conf import settings 2from django.conf.urls.static import static 3 4#media_rootを公開するために 5urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

上記の内容を追加すると多分画像が表示されるはずです。
表示されなかったらもしChromeを使っているのであれば、右クリックをして検証を選択してNetworkを開いて開いている状態で再読み込みを行ってください。

投稿2019/09/13 09:56

編集2019/09/13 12:00
SEI.__name

総合スコア67

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問