This was posted awhile ago but in case anyone else runs into this, the 
problem is the cities and categories fields have both the same name 'name'. 
The AutocompleteWidget *keyword* property gets set to the same value. The 
solution is to provide distinct *keyword* arguments.

Field('city', 
widget=SQLFORM.widgets.autocomplete(request, 
db.cities.name, 
id_field=db.cities.id,
keyword='_autocomplete_cities_%(fieldname)s')),

Field('category', 
widget=SQLFORM.widgets.autocomplete(request, 
db.categories.name <http://db.cities.name/>, 
id_field=db.categories.id <http://db.cities.id/>,
keyword='_autocomplete_categories_%(fieldname)s')),

I wonder if the default keyword argument should include the table name.

    keyword = '_autocomplete_%(tablename)s_%(fieldname)s'
    self.keyword = keyword % dict(tablename=field.tablename, 
fieldname=field.name)

Reply via email to