Hi all, My first Web2py app is almost done and with this framework I can even take a break and still being productive and nos slaved by development :-) (and I'm not a developers so is great to see how web2py brings development to common folks). Now I want to create a richer input form using rows which information is gathered from two different tables, but still I'm not there. I have created a helper SQLObjects for cross references between tables. You can see the complete model here:
http://offray.tiddlyspot.com/#Web2pySolucionarioModelo but the important new parts are this [1] fuentes_autor=(db.fuentes.autor_id==db.autor.id) [2] fuentes_ediciones=((db.ediciones.fuente_id==db.fuentes.id)&(db.fuentes.autor_id==db.autor.id)) [1] gives information about authors and sources and [2] adds information about different editions of the same sources (for example two students can be solving exercises from two different editions of the same book). The editions table is related with the sources one. Here is each one: (sources/fuentes): db.define_table('fuentes', SQLField('autor_id',db.autor), SQLField('titulo','string',length=128), SQLField('url_web','string'), SQLField('tema_id',db.temas)) (editions/ediciones): db.define_table('ediciones', SQLField('fuente_id',db.fuentes), SQLField('fecha','string'), SQLField('edicion','string')) This are two conditions for the form to add editions: db.ediciones.fecha.requires=IS_NOT_EMPTY() [3] db.ediciones.fuente_id.requires=IS_IN_DB(db,'fuentes.id','fuentes.titulo') But with the second one I only get the title of the source and I would like the Title and the Author, which is in another table. I tried with the helper SQLObject [1] replacing [3] with: db.ediciones.fuente_id.requires=IS_IN_DB(db(fuentes_autor),'db(fuentes_autor).select(db.fuentes.id)','%(db(fuentes_autor).select(db.fuentes.titulo))s %(db(fuentes_autor).select(db.autor.apellido))s') But I get the error message: File "/home/offray/Programas/Web2py/1.62.3/applications/solucionario/models/db.py" <http://127.0.0.1:8000/admin/default/edit/solucionario/models/db.py>, line 85, in <module> db.ediciones.fuente_id.requires=IS_IN_DB(db(fuentes_autor),'db(fuentes_autor).select(db.fuentes.id)','%(db(fuentes_autor).select(db.fuentes.titulo))s %(db(fuentes_autor).select(db.autor.apellido))s') File "/home/offray/Programas/Web2py/1.62.3/gluon/validators.py", line 214, in __init__ (ktable, kfield) = str(self.field).split('.') ValueError: too many values to unpack So, I think that I'm almost done trying to use helper SQLObjects to make a better input form, but I'm missing something. Any help would be appreciated. Cheers, Offray Ps: If I solved this soon, tonight I will try to publish this first app to the world (well basically my students, but open to anyone). This will be the first of many Web2py apps, some of them pretty more complex. So I can not be grateful enough, but you have a new "evangelist" for Spanish speakers and Iberoamerica :-P --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---