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

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

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

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

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

3451閲覧

Djangoのファイルアップロードに関して

yamato_user

総合スコア2321

Django

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

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2018/08/31 08:32

質問:

複数画像のアップロードを実現したいです。下記に現状のコードを記載していますので、根本的に訂正していただきたいです

現状の概略:

htmlで複数アップロードさせて、views.pyでループで画像はフルパス保存しています(見ていただいた方が早いので下記に必要な箇所を抜粋して載せます)
下記の方法だと、画像のアップロードはできるのですが、特定の画像を画面に表示させるときに、表示されなくなります(おそらく、画像をフルパスで指定して保存しているため、Django内部でurlと画像のパスが紐づいていない??)

directory構造は以下のようになっています

Pyhton

1mysite 2|-config 3 |-settings.py 4 <省略> 5|-myapp 6 |-views.py 7 |-models.py 8 <省略> 9|-templates 10 |-upload_form.html 11 |-upload_file_complete 12|-media

config/settings.py

Pyhton

1<省略> 2STATIC_URL = '/static/' 3STATIC_ROOT = os.path.join(BASE_DIR, 'static') 4MEDIA_URL = '/media/' 5MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 6<省略>

myapp/models.py

Pyhton

1class FileUploadModel(models.Model): 2 """3つのフィールドを定義しています 3 """ 4 file_name = models.ImageField(upload_to='images') 5 update_time = models.DateTimeField(default = datetime.now) 6 user_name = models.CharField(verbose_name='ユーザ名', max_length=10)

myapp/views.py

Pyhton

1 2def upload_form(request): 3 if request.method == 'GET': 4 return render(request, 'upload_form.html', {}) 5 elif request.method == 'POST': 6 for count, file in enumerate(request.FILES.getlist("files")): 7 with open(r'path/to/img_dir'+ file.name, 'wb+') as destination: 8 for chunk in file.chunks(): 9 destination.write(chunk) 10 insert_data = models.FileUploadModel(file_name = file.name,user_name=request.user.username) 11 insert_data.save() 12 return redirect("myapp:upload_file_complete")

templates/upload_form.html

HTML

1<form method="post" enctype="multipart/form-data"> 2 {% csrf_token %} 3 <input type="file" name="files" multiple/> 4 <input type="submit" value="Upload"/> 5</form>

templates/upload_file_complete.html

HTML

1<div>Complete</div>

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

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

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

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

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

guest

回答1

0

自己解決

なんかいろいろやっていたら出来ました。

投稿2018/09/04 03:22

yamato_user

総合スコア2321

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問