Hi there. Web2py has some cool field types called "list:string", "list:integer" and "list:reference table". Check them here: http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Field-types
In your case, you could avoid the creation of the third table with *list:reference table*, for example, in your db.py: db.define_table('skill', Field('name')) db.define_table('worker',\ Field('name'),\ Field('skills','list:reference skill')) Then you can do things like: skill_1 = db.skill.insert(name='coding in python') skill_2 = db.skill.insert(name='making a cake') skill_3 = db.skill.insert(name='writing a song') db.worker.insert(name='John', skills=[skill_1, skill_2]) db.worker.insert(name='Paul', skills=[skill_3]) db.worker.insert(name='Richard', skills=[skill_2, skill_3]) # search which workers have skill_2: have_skill_3 = db(db.worker.skills.contains(skill_2)).select() The list:reference field will be rendered as a select with multiple=True. You can always write your own widget to use other stuff, like checkboxes. Look for "list:reference" in this group, you will lots of posts about it. Hope it helps! El jueves, 6 de agosto de 2015, 22:51:53 (UTC-3), Yebach escribió: > > Hello > > How to solve the problem of one to many relationship: > > Lets say I have a worker that has multiple skills. How to set up SQLFORM > to add as many skills to the worker as possible. > > So skills in one table workers in another.I guess a third table will be > needed > > Thank you > > best regards > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.