> Are you saying you want the user to enter a last name for the child and >> then have the drop-down dynamically updated with the list of parents with >> the entered last name? If so, obviously that cannot be done at the time the >> form is generated on the server because you don't know what name the user >> will enter in the form. >> > > Hmm.. I did not thing of that. > Actually I was trying only "Edit" option - where last name of the child is > known, but parent information is not populated. > Did not think of "New" scenario - my bad. >> >> In the "edit" scenario, you do have the child last name, so you can take the approach I showed, though you have to set the validator after you retrieve the relevant record. So you would do something like:
child_record = db.child([some id]) db.child.parents.requires = IS_IN_DB(db(db.parent.lname = child_record. last_name), ...) edit_form = SQLFORM(db.child, record=child_record) > You'll instead have to handle this with Javascript in the browser, >> possibly with an Ajax call back to the server to populate the list >> > (unless the list of parents is small enough to send to the browser with >> the initial page load). >> > Makes sense. In that case : > should I even use "reference parent" ? Cause I think it will automatically > create and populate the widget for me (which I think I will need to hide > somehow ?) > You still want it to be a reference field. If you don't want the default widget associated with the IS_IN_DB validator, you can always put it in a list (which suppresses the drop-down list widget): Field('parents', 'list:reference parent', requires=[IS_IN_DB(...)]) Anthony -Mandar -- 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.