diadia

興味があることをやってみる。自分のメモを残しておきます。

formの入力データを返す方法(cleaned_data)

フォームによるデータの返す準備、手続き

forms.Formを用いたデータを表示させるには以下のコマンドが必要になる。

form=HogeForm(request.POST)
if form.is_valid()
    form.cleaned_data

で単純にrequest.POSTを入れたFormにcleaned_dataをかけ合わせれば入力データが返されるわけではないことがわかった。
参照元
https://docs.djangoproject.com/ja/2.1/topics/forms/#field-data

フォームで送信されたデータが何であっても、is_valid() を呼び出して正常に検証されると(そして``is_valid()`` が True を返すと)、検証されたフォームデータは form.cleaned_data ディクショナリに格納されます。 このデータは Python の型にうまく変換されています。

つまりis_valid()の結果がTrueのとき、form.cleaned_dataに情報が格納される。
もっと言えばis_valid()を挟まないと入力データを参照することは出来ない。


データの取り出し方

返すデータは辞書型なので、通常のようにキーを入れれば値が返される。

form.cleaned_data["name"]