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.vars))
id =
db.users_dictionaries.insert(**db.user_dictionaries._filter_fields(perm_form.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/admin.py"
<http://localhost:8000/admin/default/edit/webkeywords2/controllers/admin.py>,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/admin.py"
<http://localhost:8000/admin/default/edit/webkeywords2/controllers/admin.py>,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 Ampolo
http://vincenzo-ampolo.net
http://goshawknest.wordpress.com