/ / Jak uzyskać przesłaną wartość formularza w widoku opartym na klasach Django? - django, django-forms, django-views

Jak uzyskać przesłaną wartość formularza w widoku opartym na klasach Django? - django, django-forms, django-views

Mam formularz Django, który wygląda tak:

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

Mam skojarzony z klasą FormView jakopokazane poniżej. Widzę, że formularz pomyślnie sprawdza dane, a przepływ przechodzi do metody form_valid () poniżej. Muszę wiedzieć, jak uzyskać wartość, którą użytkownik przesłał w polu e-mail. form.fields["email"].value nie działa.

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)

Odpowiedzi:

13 dla odpowiedzi nr 1

Możesz sprawdzić formularz "s cleaned_data atrybut, który będzie słownikiem z twoimi polami jako kluczami i wartościami jako wartościami. Dokumenty tutaj.

Przykład:

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)

1 dla odpowiedzi nr 2

Spróbuj tego:

 form.cleaned_data.get("email")