The problem is that what you want to do cannot be resolved server side. You want the team dropdown to depend on the section, the section dropdown to depend on the department, and the department dropdown to depend on the factory.
There is no web2py syntax to do this because there is no way to get it done without some client-side JS. In fact the way I would do it is create a JSON object with all the dependencies, cache it, serve is static file, and use it to populate the dropdown on change of the previous dropdown using JS. Massimo On Tuesday, 28 July 2015 17:30:18 UTC-5, Wabbajack wrote: > > I have created a *factory,department,section and team* table in the > database > and a *factory* is on a *one to many* relationship with *department* > a *department* is on a *one to many* relationship with* section* > a *section* is on a *one to many* relationship with* team* > > *Table names* > factory = portal_factory > department = portal_department > section = portal_section > team = portal_team > > *db.py codes* > ## *Factory* > db.define_table('portal_factory', > Field('name', notnull=True , required=True,unique=True) > ) > ## *Department* > db.define_table('portal_department', > > Field('factory_id',db.portal_factory,notnull=True,required=True,requires=IS_IN_DB(db, > db.portal_factory.id,'%(name)s')), > Field('name',notnull=True,required=True,unique=True) > ) > ## *Section* > db.define_table('portal_section', > > Field('department_id',db.portal_department,notnull=True,required=True,requires=IS_IN_DB(db, > db.portal_department.id,'%(name)s')), > Field('name', notnull=True, required=True, unique=True), > ) > ## *Team* > db.define_table('portal_team', > > Field('section_id',db.portal_section,notnull=True,required=True,requires=IS_IN_DB(db, > db.portal_section.id,'%(name)s')), > Field('name', notnull=True, required=True, unique=True), > ) > > ## This is the tricky part > ##i want to dynamically make an option list in the *t_department based on > the selected t_factory* > ##i want to dynamically make an option list in the* t_section based on > the selected t_department* > ##i want to dynamically make an option list in the* t_team based on the > selected t_section* > > ## Extra fields on auth_user for registration > auth.settings.extra_fields['auth_user']=[ > Field('t_factory','reference portal_factory',label='Factory',notnull = > True,required = True,requires=IS_IN_DB(db, db.portal_factory.id > ,'%(name)s')), > Field('t_department','reference > portal_department',label='Department',notnull = True,required = > True,requires=IS_IN_DB(db, db.portal_department.id,'%(name)s')), > Field('t_section','reference portal_section',label='Section',notnull = > True,required = True,requires=IS_IN_DB(db, db.portal_section.id > ,'%(name)s')), > Field('t_team','reference portal_team',label='Team',notnull = > True,required = True,requires=IS_IN_DB(db, db.portal_team.id,'%(name)s')), > ] > > i have an attached file where this what i want to happen upon registration > > Upon registration if i select *factory* *A *there are different *department > *selections in the dropdown (dropdown.png) > same as if i select *factory B *there are different *department *selections > in the dropdown (dropdown2.png) > this setup will just follow for *department *to *section *and *section *to > *team* > > Thank you in advance for your help...More power to web2py > > > -- 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.