So, for my example, I tried your suggestion. I defined a widget in models/widgets.py:
def units_widget(field,value,food_id): ... and then in the controller, I set the widget with: db.ate.units.widget = units_widget(food_id) But here I am not passing field and value so I get an error. What would be the proper way to call the widget constructor? Avik On Mar 27, 12:02 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > in the controller you can do > > db.table.field.widget = SomeWidgetConstructor(args) > > Not sure if this is what you are asking. > > On 26 Mar, 18:26, Avik Basu <avikb...@gmail.com> wrote: > > > > > Is there a way to pass arguments to a field's widget from the > > controller? For example: > > > db.define_table("food", Field("name", "string'")) > > > db.define_table("units", > > Field("food_id", db.food), > > Field("name", "string") > > ) > > > db.define_table("ate", > > Field("food_id", db.food), > > Field("quantity", "double"), > > Field("units", "string", widget=units_widget), > > ) > > > In an update form for "ate", I would like to create a dropdown box of > > units that are associated with a given food_id. I realize could not > > be set in the db.py since the food id would be unknown in that scope, > > however the action in the controller would have access to the food id, > > but I would like to be able to pass that somehow to the widget. > > > Thanks, > > Avik -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@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.