閲覧いただきありがとうございます。
Djangoについて質問です。
現在下記URLを参考にDjangoを利用したセッションの活用方法を勉強しています。
Djangoで、フォームの内容を保持する(セッション編)
学習を進めていくにつれて、上記チュートリアルにおいて4点ほど調べてみても分からない点が出て来たので、わかる部分だけでもご教授いただければと思います。
質問内容の内容としては、エラーでハマっているわけでは無く、
チュートリアルに記載されているソースコードに使われているメソッドなどがどういう意図で実装され、また、使用されるのかと言ったものになります。
###【環境】
macOS high sierra
python3.6
Django2.0
Pycharm
DB : sllite3
###【不明な点1 ファイル名 : views.py】
python
1self.request.session.get('form_data', None) 2self.request.session.pop('form_data', None)
この第2引数のNoneというのは何をしていしているのでしょうか。
探し方が甘かったのかもしれませんが、ググって見ても解説している箇所が見つけることができませんでした。
###【不明な点2 ファイル名 : views.py】
python
1def get_form(self, form_class = None): 2 if 'username' in self.request.POST: 3 form_data = self.request.POST 4 5 else: 6 form_data = self.request.session.get('form_data', None) 7 8 return self.form_class(form_data)
上記コードのget_form()は何を処理するメソッドなのでしょうか。
edit.pyでの定義元を見てみると「Return an instance of the form to be used in this view.」と説明されており、ざっくり意訳すると「このビューで使われているフォームインスタンスを返す」ですが、いまいち理解ができません。
views.pyの処理自体は、usernameがあるかないかで条件分岐をしていますが、そもそもそれだけであればこの関数をオーバーライドして処理をする必要があるのかも分かりません。。
###【不明な点3 ファイル名 : views.py】
python
1def form_valid(self, form): 2 self.request.session['form_data'] = self.request.POST 3 return super().form_valid(form)
こちらも【不明な点2】と同じ理由で、form_valid()が何をしている関数なのかがわかりません。views.pyの内容的にはセッション変数に値を格納して、親のform_valid(form)を返しているだけになりますが、なぜform_valid()をオーバライドし、親のform_valid()を返す必要があるのかがわかりません。
###【不明な点4 ファイル名 : user_data_input.html】
html
1<form action="" method="POST">
上記<form>タグについてですが、値の送り先のaction=“”が空白になっています。
これはDjangoにはあらかじめ「空白であった場合〇〇に飛ばす」という仕様があるという理解でよろしいでしょうか。
以上、大変長くなりましたが、わかる範囲で構いませんので、
ご教授いただければと思います。
それでは宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。