Vincenzo, Does it still blow up if you comment out these three lines?
id = db.users_categories.insert(**db.user_categories._filter_fields(perm_form.va rs)) id = db.users_dictionaries.insert(**db.user_dictionaries._filter_fields(perm_for m.vars)) response.flash='Thanks for filling the form' On Dec 7, 6:08 pm, Vincenzo Ampolo <vincenzo.amp...@gmail.com> wrote: > Hi all > > I'm new to web2py. I set up a many to many relationship like these ones: > > db.define_table('users_dictionaries', > > Field('user_id', db.auth_user, requires = > IS_IN_DB(db,'auth_user.id', db.auth_user._format)), > > Field('dictionary_id', db.dictionary, > requires=IS_IN_DB(db,'dictionary.id',db.dictionary._format,multiple=True)), > > ) > > db.define_table('users_categories', > > Field('user_id', db.auth_user, requires = > IS_IN_DB(db,'auth_user.id', db.auth_user._format)), > > Field('category_id', db.category, > requires=IS_IN_DB(db,'category.id',db.category._format,multiple=True)) > > ) > > in the controller i'm doing: > > perm_form=SQLFORM.factory(db.users_categories,db.users_dictionaries) > if perm_form.process().accepted: > form.vars.user=auth_user.id > id = > db.users_categories.insert(**db.user_categories._filter_fields(perm_form.va > rs)) > id = > db.users_dictionaries.insert(**db.user_dictionaries._filter_fields(perm_for > m.vars)) > response.flash='Thanks for filling the form' > > It's displayed correctly: combo for the user, multiple select for > user_categories and user_dictionaries but when i try to select a user, > some or one category and some or one dictionary and i press submit i get > this error: > > Traceback(most recent call last): > File"/var/www/argomenti.in/web2py/gluon/restricted.py",line194,inrestricted > execccodeinenvironment > > File"/var/www/argomenti.in/web2py/applications/webkeywords2/controllers/adm > in.py" > <http://localhost:8000/admin/default/edit/webkeywords2/controllers/adm...>,line20,in<module> > File"/var/www/argomenti.in/web2py/gluon/globals.py",line149,in<lambda> > self._caller=lambdaf:f() > > File"/var/www/argomenti.in/web2py/applications/webkeywords2/controllers/adm > in.py" > <http://localhost:8000/admin/default/edit/webkeywords2/controllers/adm...>,line9,inindex > ifperm_form.process().accepted: > File"/var/www/argomenti.in/web2py/gluon/html.py",line1950,inprocess > self.validate(**kwargs) > File"/var/www/argomenti.in/web2py/gluon/html.py",line1898,invalidate > if self.accepts(**kwargs): > File"/var/www/argomenti.in/web2py/gluon/sqlhtml.py",line1219,inaccepts > fields[fieldname] =safe_int(value) > File"/var/www/argomenti.in/web2py/gluon/sqlhtml.py",line48,insafe_int > returnint(x) > TypeError:int()argument must be a stringora number,not'list' > > How can i fix it? is that multiple=True of my tables that triggers the > problem? > > Thanks > > -- > Vincenzo Ampolohttp://vincenzo-ampolo.nethttp://goshawknest.wordpress.com