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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

521閲覧

Ajaxでrequest.FILESのデータを送りたい

akane_emo

総合スコア30

Django

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/11/24 07:35

編集2021/11/24 15:58

前提・実現したいこと

ファイルを選択(複数可)し、ファイルが入力されていたらis_valid内の処理をAjaxで行いたいです。
is_valid内の処理は出来ています。
問題なのはHTML(template)の記述になります。

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

私が行いたい処理だと読み込んだファイルをAjax処理時に送らないといけないのですが
私の記述だとファイルを渡すようにはなっていないようです。。
FormDataオブジェクトを使用すれば良いということまでは調べれたのですが
javaScriptの知識が乏しく良くわかりません。

分かる方教えて頂けますでしょうか。
よろしくお願いいたします。

template

1<div> 2 <form action="{% url 'index_webedi'%}" method="post" enctype="multipart/form-data"> 3 {% csrf_token %} 4 5 <div class="upload-area"> 6 {{ form }} 7 <br> 8 <br> 9 <button class="btn btn-primary mt-1" id="submit-btn">アップロード</button> 10 </div> 11 <br> 12 </form> 13 14 <div id="result"> 15 <!-- Will be replaced with inputed text by Ajax --> 16 </div> 17 18 <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> 19 <script> 20 21 function getCookie(name) { 22 var cookieValue = null; 23 if (document.cookie && document.cookie !== '') { 24 var cookies = document.cookie.split(';'); 25 for (var i = 0; i < cookies.length; i++) { 26 var cookie = jQuery.trim(cookies[i]); 27 // Does this cookie string begin with the name we want? 28 if (cookie.substring(0, name.length + 1) === (name + '=')) { 29 cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 30 break; 31 } 32 } 33 } 34 return cookieValue; 35 } 36 37 var csrftoken = getCookie('csrftoken'); 38 39 function csrfSafeMethod(method) { 40 // these HTTP methods do not require CSRF protection 41 return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); 42 } 43 44 $.ajaxSetup({ 45 beforeSend: function (xhr, settings) { 46 if (!csrfSafeMethod(settings.type) && !this.crossDomain) { 47 xhr.setRequestHeader("X-CSRFToken", csrftoken); 48 } 49 } 50 }); 51 52 // 送信ボタンにイベントリスナーを設定。内部に Ajax 処理を記述 53 $("form").submit(function(event) { 54 event.preventDefault(); 55 var form = $(this); 56 $.ajax({ 57 url: form.prop("action"), 58 method: form.prop("method"), 59 data: form.serialize(), 60 timeout: 10000, 61 dataType: "text", 62 }) 63 .done(function(data) { 64 $("#result").append("<p>" + data + "</p>"); 65 }) 66 }); 67 </script>

forms

1from django import forms 2 3class UploadFileForm(forms.Form): 4 file_field = forms.FileField( 5 label='', 6 widget=forms.ClearableFileInput(attrs={'multiple': True}))

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問