I am using an AutocompleteWidget with and id_field set and would like to prepopulate the data for this widget.
Say I have the following tables: Person with id and name fields Dog with id, name and owner fields I have the following line to setup the widget for dog.owner: db.dog.owner.widget = SQLFORM.widgets.autocomplete(request, db.person.name, limitby=(0,5), auth=auth, min_length=2, id_field=db.person.id) My controller: form = SQLFORM(db.dog, fields=fields, formstyle='table3cols', submit_button='Add', comments=False) form.vars.owner = 10 form.accepts(request.vars, session) The above sets the hidden field in the form to the proper owner (person.id) but the visible input box is blank. So I also added the following line to try to get SQLFORM to put a value into the input box and it did: form.vars._autocomplete_owner_aux = "Fred" However, when I submit the form I get an error from SQLFORM.accepts() because _autocomplete_owner_aux is not a field in the table dog. The error comes from the following line 1201 from sqlhtml.py, self.vars.id = self.table.insert(**fields). Shouldn't this call filter the fields dictionary to remove any fields not in the table? Is there a better way of prepopulating the autocomplete widget?