/ / Djangoクラスベースのビューでフォームの提出された値を取得する方法は? - django、django-forms、django-views

Djangoクラスベースのビューでフォームの提出された値を取得する方法は? - django、django-forms、django-views

私は次のようなDjangoフォームを持っています:

class myForm(forms.Form):
email = forms.EmailField(
label="Email",
max_length=254,
required=True,
)

私は関連付けられたクラスベースのFormViewを持っています下に示された。私は、フォームがデータを正しく検証していることがわかり、フローは以下のform_valid()メソッドに入っています。私が知る必要があるのは、ユーザーが電子メールフィールドに提出した値を取得する方法です。 form.fields["email"].value 仕事はしません。

class myFormView(FormView):
template_name = "myTemplate.html"
form_class = myForm
success_url = "/blahblahblah"


def form_valid(self, form):
# How Do I get the submitted values of the form fields here?
# I would like to do a log.debug() of the email address?
return super(myFormView, self).form_valid(form)

回答:

回答№1の13

あなたはフォームをチェックすることができます cleaned_data 属性は、キーと値としてのフィールドを値として持つ辞書です。ドキュメント ここに.

例:

class myFormView(FormView):
template_name = "myTemplate.html"
form_class = myForm
success_url = "/blahblahblah"


def form_valid(self, form):
email = form.cleaned_data["email"] <--- Add this line to get email value
return super(myFormView, self).form_valid(form)

回答№2の場合は1

これを試して:

 form.cleaned_data.get("email")