Tengo dos formularios completamente diferentes en una plantilla. ¿Cómo procesarlos en una vista? ¿Cómo puedo distinguir cuál de los formularios se envió? ¿Cómo puedo usar el prefijo para lograr eso? ¿O tal vez es mejor escribir vistas separadas?
respecto
chriss¿Cómo procesar dos formularios en una vista?
5
A
Respuesta
5
En lo personal, me gustaría usar una vista para manejar la POST de cada forma.
Por otra parte, se puede utilizar un elemento de entrada oculto que indique qué forma se utilizó
<form action="/blog/" method="POST">
{{ blog_form.as_p }}
<input type="hidden" name="form-type" value"blog-form" /> <!-- set type -->
<input type="submit" value="Submit" />
</form>
...
<form action="/blog/" method="POST">
{{ micro_form.as_p }}
<input type="hidden" name="form-type" value"micro-form" /> <!-- set type -->
<input type="submit" value="Submit" />
</form>
Con una vista como:
def blog(request):
if request.method == 'POST':
if request.POST['form-type'] == u"blog-form": # test the form type
form = BlogForm(request.POST)
...
else:
form = MicroForm(request.POST)
...
return render_to_response('blog.html', {
'blog_form': BlogForm(),
'micro_form': MicroForm(),
})
... pero una vez más, creo una vista por formulario (incluso si la vista solo acepta POST) es más simple que tratar de hacer lo anterior.
0
Si las dos formas son completamente diferentes, no va a doler que sean manejadas por dos vistas diferentes. De lo contrario, puede utilizar el truco 'elemento de entrada oculto' zacherates ha tocado. O bien, siempre podría dar a cada elemento submit
un nombre único y diferenciar en la vista qué formulario se envió en función de eso.
4
como Ayaz dijo, usted debe dar nombre único para formar botón de envío
<form action="." method="post">
......
<input type="submit" name="form1">
</form>
<form action="." method="post">
......
<input type="submit" name="form2">
</form>
#view
if "form1" in request.POST:
...
if "form2" in request.POST:
...
Cuestiones relacionadas
- 1. ¿Cómo usar dos formularios y enviar una vez?
- 2. depuración de contenido de vista sin procesar
- 3. ¿Cuándo dividir una vista MVC en dos?
- 4. ¿Cómo usar dos Formularios Django diferentes en la misma plantilla?
- 5. Fusionar valores de dos formularios en enviar
- 6. Separación de dos formularios en la misma vista en ASP.Net MVC
- 7. Datos de dos tablas en una vista
- 8. ¿Cómo pasar un parámetro entre dos formularios en Axapta?
- 9. Dos formularios comparten la misma entrada
- 10. Cómo procesar una matriz EN PARALELO
- 11. Dos modelos en una sola vista en ASP MVC 3
- 12. Cómo crear una forma "dinámica" - y almacenar datos y diseño de formularios en dos campos
- 13. Formularios Django: establezca valores de campo en la vista
- 14. Cómo redirigir a una vista diferente después de procesar un formulario obteniendo error NoReverseMatch
- 15. Cómo procesar una cadena en una capa de sublistas
- 16. Comunicar entre dos formularios de Windows en C#
- 17. Dos problemas con sbt en cygwin/vista
- 18. Cómo procesar cada otra línea en bash
- 19. Dos UITableView en la misma vista
- 20. Creación de dos hojas de acción en una vista
- 21. Dos controladores para una vista compartida en Ruby on Rails
- 22. cambiar la vista de dos vista del controlador en una animación de cubo
- 23. ¿Cómo cargar dos matrices en la misma tabla vista?
- 24. Dos formularios para ajustar el uno al otro
- 25. Cómo procesar un formulario con CodeIgniter
- 26. Almacenar campos dinámicos en formularios de Django
- 27. Motor de vista de motores y vista de formularios Web en el mismo proyecto
- 28. CodeIgniter: pasar datos a una vista incluida en una vista
- 29. Cómo compilar una biblioteca con formularios WPF
- 30. Generar una matriz JSON sin procesar en ASP.NET MVC