Formularios en Turbogears
Jesús Serrano
jesus.signin en gmail.com
Mar Feb 14 12:01:45 CET 2006
Hola a todos.
Llevo un tiempo aprendiendo turbogears y quiero hacer un formulario para
editar/insertar registros en una base de datos.
Algo parecido al del ejemplo pero con algunas diferencias. Me explico:
En el ejemplo que hay en la página de turbogears se le pasa cada variable
del formulario una a una, algo como esto:
<input type="text" name="nombre" value="${nombre}">
<input type="text" name="apellido1" value="${apellido1}">
<input type="text" name="apellido2" value="${apellido2}">
En el modelo tengo hay que cojer el objeto que devuelve SQLObject y uno a
uno extraer las variables y lanzarselas a KID:
return (nombre=persona.nombre, apellido1=persona.apellido1, apellido2=
persona.apellido1)
Cuando se va a usar para editar un registro esos valores se rellenan y
cuando es para uno nuevo esos valores van vacios pero aprovechan la misma
plantilla para ambas acciones.
Ahora... yo tengo un formulario con un monton de campos y lo q quiero es
poder lanzarle directamente el objeto que me devuelve SQLObject, algo asi
return dict(p=persona)
y en la plantilla...
<input type="text" name="nombre" value="${p.nombre}">
<input type="text" name="apellido1" value="${p.apellido1}">
<input type="text" name="apellido2" value="${p.apellido2}">
Bien, cuando recupero datos de la base de datos, creo el objeto "persona" y
se lo lanzo a la plantilla, me lo pinta perfectamente (incluso a la hora de
grabarlo puedo generar el objeto directamente con los datos sin necesidad de
ir campo por campo), ¡pero! cuando quiero crear un registro nuevo ese objeto
no existe y me da un error (claro)
La pregunta es: si tengo un formulario con muchos campos... ¿es necesario
tratar campo por campo o hay alguna manera de usar directamente los objetos
que uso para SQLObject?
Esto si lo hago en Java con Struts+Hibernate que no tengo q ir uno por uno
con los campos sino que directamente hago todo con los objetos de hibernate
(con el copy del beanutils).
un saludo y gracias
jesus
Más información sobre la lista de distribución Python-es