Estoy intentando que mi formulario se envíe a una ruta que validará los datos y luego se redireccionará a la ruta original.¿Cómo puedo redireccionar después de POST en Pyramid?
Por ejemplo: carga
- usuario la página website.com/post
- Mensajes formar los datos a website.com/post-save~~V~~plural~~3rd
- usuario se redirige a website.com/post
Pyramid me está causando algunos problemas al hacer esto.
Aquí es mi adelgazado views.py
def _get_link_form(post_data):
""" Returns the initialised form object """
return LinkForm(post_data)
def home_page(request):
form = _get_link_form(request.POST)
return {'form' : form}
def save_post(request):
""" form data is submitted here """"
form = _get_link_form(request.POST)
if not form.validate():
return home_page(request, form)
Este es el código que he estado jugando con. No solo no funciona, también se siente desordenado y hackeado. Seguramente hay una forma más simple de 'redirigir después de POST' en Pyramid?
de redireccionamiento es fácil. El problema es, ¿cómo redirecciono a 'home_page' y envío los errores de formulario encontrados en' save_post'? – dave
Una forma de lidiar con esto es invertir la forma en que está haciendo las cosas ahora: haga que 'home_page' también sea la vista a la que se envía el formulario, y luego redirija solo si el envío fue exitoso. Entonces, si necesita mostrar errores, 'home_page' ya tiene el objeto de formulario que necesita. –
Estaba considerando eso, pero tengo dos callables de vista diferentes que mostrarán el formulario. Podría pedirles a los dos que se presenten en la vista principal, invocable (home_page, en este ejemplo), pero sería bueno que cada vista invocable pudiera redirigirse a sí misma después de enviarla, si eso tiene sentido ... – dave