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 1Moż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")