Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

765
Views
Cómo acceder a los datos del formulario en `FormView.get_success_url()`

Actualmente, tengo un formulario que se ve así:

 class SelectBoard(generic.FormView): form_class = forms.SelectBoard def form_valid(self, form): board_name = form.cleaned_data['name'] return redirect('leaderboard', board_name=board_name)

Sin embargo, preferiría hacer algo más idiomático y usar get_success_url . Algo como esto:

 class SelectBoard(generic.FormView): form_class = forms.SelectBoard def get_success_url(self): form = ??? board_name = form.cleaned_data['name'] return reverse('leaderboard', board_name=board_name)

Sin embargo, el formulario no se pasa a get_success_url y, a diferencia de muchas otras piezas de contexto de solicitud (como self.request , self.kwargs o self.object (en DetailView )), el formulario no se adjunta como un atributo en ningún punto de la secuencia de envío estándar FormView . ¿Hay alguna buena manera de acceder a datos de formularios limpios y validados en get_success_url (es decir, sin tener que acceder a self.request.POST o reconstruir el formulario desde cero)?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede anular el método form_valid para escribir form como atributo de instancia y usar self.form dentro get_success_url :

 class SelectBoard(generic.FormView): form_class = forms.SelectBoard def form_valid(self, form): """If the form is valid, redirect to the supplied URL.""" self.form = form return HttpResponseRedirect(self.get_success_url()) def get_success_url(self): board_name = self.form.cleaned_data['name'] return reverse('leaderboard', board_name=board_name)
over 4 years ago · Santiago Trujillo Report

0

Puede establecer el atributo success_url en el método form_valid obteniendo el valor del campo de formulario si es necesario

 class SelectBoard(generic.FormView): form_class = forms.SelectBoard def form_valid(self, form): board_name = form.cleaned_data['name'] self.success_url = reverse('leaderboard', board_name=board_name) return super().form_valid(form)
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!