Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

758
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda