Как получить представленное значение формы в представлении класса 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')