Tengo un proyecto de Django que, en una página, tiene múltiples formularios (en etiquetas diferentes) que se pueden enviar para tener diferentes efectos. En todos los casos, deseo que el usuario sea redireccionado a la misma página, por lo que utilizo en mi vista el patrón de enviar el formulario y luego redirigirlo a la página original. En al menos un caso, la única diferencia entre dos de los formularios es el valor del botón de envío.¿Cómo puedo acceder al valor del botón de envío de formulario en Django?
En mi opinión, tengo el código (que es la primera vez que mi función de vista accede al request.POST
):
if request.POST['submit']=='Add':
#code to deal with the "Add" form
y en la plantilla, la primera forma tiene un botón de envío como
<input type="submit" value="Add">
pensé que esto iba a funcionar, pero cuando me presento esa forma, me da un error en la línea de visión desde arriba:
Clave 'enviar' no se encuentra en
<QueryDict: {u'clientyear': [u'2012'], u'csrfmiddlewaretoken': [u'be1f2f051f09f6ab0375fdf76cf6a4d7'], u'ben': [u'123405']}>
Obviamente, esto no tiene un 'submit'
tecla o cualquier tecla con el valor correspondiente al botón de enviar hice clic. Entonces, como esto no funciona, ¿cómo se puede acceder al valor del botón de envío o indicar cuál de los formularios se ha enviado?
Depende de lo que es el valor establecido para la específica botón de envío. Si esta es una cadena vacía, su solución no funcionará (porque '''', una cadena vacía, se evalúa como falsa). – Tadeck
Uso * ... * para mostrar lo importante es 'nombre' no' valor' ... Reparado en este momento, gracias. – FallenAngel
No hay problema. Pero tal vez la forma más fácil es reemplazar 'request.POST.get ('list')' con ''list' en request.POST'? – Tadeck