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

Reply via email to