Как получить представленное значение формы в представлении класса Django?

У меня есть форма 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

Вы можете проверить атрибут формы cleaned_data, который будет представлять собой словарь с вашими полями в виде ключей и значений в качестве значений. Docs здесь.

Пример:

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

попробуйте следующее:

 form.cleaned_data.get('email')