Pasar datos desde un formulario por GET hacia una vista

5,388 views
Skip to first unread message

Paul Cumba

unread,
Apr 26, 2012, 5:06:31 PM4/26/12
to djan...@googlegroups.com
Hola a todos amigos..!! Espero me pueda ayudar.

Necesito pasar los datos desde un formulario creado por una vista hacia otra vista para poder manipular esos datos, me explico, tengo una vista que realiza una consulta a mi base de datos y lo envia a una plantilla donde tengo creado mi formulario.

Esta es mi plantilla que muestra la informacion consultada y contiene tiene el formulario:

{% extends "base.html" %}
    {% block content %}
    <fieldset style="border: 1px solid #C0C0C0" width:"100px" height:"200px">
        <legend><h2>Datos del contrato a modificar</h2></legend>
      {%for contrato in c%}
      <p><b>Contrato Numero:</b>&nbsp{{contrato.numero}}</p>
      <p><b>Nombre del Docente:</b>&nbsp{{contrato.docentes}} {{o_doc.apellido}}</p>
      <p><b>Nombre de la Institucion:</b>&nbsp{{contrato.instituciones}}</p>
    
      <fieldset style="border: 1px solid #C0C0C0" width:"100px" height:"200px">
       <h6>Ingrese el nombre de la nueva institucion a la cual se cambia el docente</h6>
       <form action="mod2" method="get">
            <label for="id_contrato">Numero del Contrato:</label><input id="id_contrato" type="text" name="contrato" maxlength="10" value="{{contrato.numero}}" disabled="true"/>
            <label for="id_institucion">Nueva Institucion:</label><input id="id_institucion" type="text" name="institucion" maxlength="30"/>
           <p><input type="submit" value="Realizar Modificacion"></p>
       </form>
        {%endfor%}
       </fieldset>
      </div>
      </fieldset>
     {% endblock %}
     
Lo que deseo saber es que al hacer submit los datos que tengo en los input text, tanto el numero de contrato, asi como la institucion pueda manipularlos en un vista, como lo hago..???

 espero me den algunas ideas. Gracias..!!

Diego Uribe Gamez

unread,
Apr 26, 2012, 5:21:15 PM4/26/12
to djan...@googlegroups.com
Creo que están ligados el formulario y la vista, con el método GET o POST depende de lo que quieras hacer! similar a php, no te confundas!


por otro lado te recomiendo buscar en el libro de django en español (No se si es libre?) o en algún lado para ver mejor como formatear un formulario unido a la base de datos desde la vista al template!

Un saludo.



--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.



--
 Diego Alonso Uribe Gamez

Desarrollador web

Twitter: @DiegoUG

Google+: http://gplus.to/diegoug




Alberto Chamorro

unread,
Apr 27, 2012, 2:08:46 AM4/27/12
to djan...@googlegroups.com
Hola Paul,

A la hora de definir una vista tienes que indicar:

def <nombre_vista>(request):

Ese parametro request es una instancia de la clase HttpRequest y es obligatorio definirlo. Django rellena esta variable automaticamente con todos los datos de la peticion que le llega del navegador, incluidos los formularios.
Dentro de request tienes los objetos GET y POST que contienen la informacion dependiendo del metodo de envio que hayas elegido con formato diccionario.

Te animo a revisarte la documentacion oficial de django:


Un saludo.

Paul Cumba

unread,
Apr 27, 2012, 8:35:06 PM4/27/12
to djan...@googlegroups.com
Hola Alberto.
 
Te comento que si he estado leyendo un poco acerca de las peticiones Request en las vistas y si comprendo que el paso de esas peticiones se las hace mediante un HttpRequest. Ahora lo que me gustaia saber es como capturo las variables que envio desde mi formulario hacia las vista, algo mecionaba Diego. en PHP es mu sencillo.
En PHP
<form name = "nombre_form" method = "get/post" action = "pagina.php(es donde se procesa la peticion)"
y se capturan las variables en la pagina PHP

ahora lo que entiendo en Django seria...
<form name = "nombre" method = "get" action="vista de django">
   <input type = "text" id="id_codigo" name="codigo"/>
   <input type = "text" id="id_nombre" name="nombre"/>
   <input type = "submit"  value="nombre"/>
</form>

la pregunta es que al enviar los datos por el submit a la vista de django como capturo el contenido de las input type text...???

def vista_django (request):
    codigo = ?????? (variable codigo del formulario)
    nombre = ??????(variable nombre del formulario)

Espero me puedan ayudar amigos estoy perdido en esto... Gracias...!!!!

Jhónatan Mosquera

unread,
Apr 27, 2012, 8:45:30 PM4/27/12
to djan...@googlegroups.com
Si envías por el método get capturas asi
codigo =request.GET['id_codigo']
ahora en el caso que sea por post es similar 
codigo=request.POST['id_codigo']

aca esta toda la documentacion acerca del request https://docs.djangoproject.com/en/1.4//ref/request-response/

-- 
Saludos
------------------------------------------
Jhónatan Mosquera Tabra

Carlos Luis Jordán Murillo

unread,
Apr 27, 2012, 8:46:53 PM4/27/12
to djan...@googlegroups.com
Claro pero tiene que tener bien configurado el form dentro del template 

--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.



--
Saludos
Carlos Jordán
Ingeniero  
Escuela Superior Politécnica del Litoral
Ciencias Computacionales especialización Sistemas de Información

Carlos

unread,
Jun 27, 2012, 2:47:25 PM6/27/12
to djan...@googlegroups.com
Hola Jhonatan Mosquera, 
Puedes usar lo siguiente en el caso del get para que no salga error
codigo = request.GET.get("codigo","")
y en el caso de post primero preguntar si desde el formulario el método de envío es POST, 
Saludos

-- 
Ing. Carlos Jordán M.
Ciencias Computacionales 
Sistemas de Información
Escuela Superior Politécnica del Litoral

Enviado con Sparrow

--

Alberto Chamorro

unread,
Jun 28, 2012, 4:15:51 AM6/28/12
to djan...@googlegroups.com
Te animo que te mires mi vista home en github. Es muy sencilla y con comentarios:

Devilsito

unread,
Jan 28, 2023, 8:32:23 PM1/28/23
to Django-es
Tengo mis dudas el creer que los que han respondido de que se puede pasar datos desde template a vista django se pueda hacer por el metodo GET. Me da la impresion de que no lo han realizado nunca, pues eso sencillamente no se puede.

carlos

unread,
Jan 28, 2023, 11:07:28 PM1/28/23
to djan...@googlegroups.com
Hola yo lo he usado y como te han indicado en los ejemplos es así, pero te paso la documentación que es de suma importancia leerla para comprender
cómo funciona Django.


también busqué algunos enlaces en stackoverflow o algún post relacionado a lo que buscas

también aclarar que es un poquito diferente si estas en CBV o FBV el primer ejemplo de stackoverflow esta para ListView es decir CBV
el segundo es con FBV, el tercero también es con FBV

saludos

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/django-es/1eabba87-4a5b-432e-b9f3-748647798300n%40googlegroups.com.


--
att.
Carlos Rocha
Reply all
Reply to author
Forward
0 new messages