The error is that here: (self=<gluon.languages.translator object>, message='User %(id)s Logged-in', symbols=("<Row \x1e'username': 'julien', 'first_name': 'Julie...f9da1adefd98', 'registration_key': '', 'id': 12\x1f>",))
should be (self=<gluon.languages.translator object>, message='User %(id)s Logged-in', symbols="<Row \x1e'username': 'julien', 'first_name': 'Julie...f9da1adefd98', 'registration_key': '', 'id': 12\x1f>") Yet I do not know why this happens to you. It does not happen to me. Can you post the complete traceback? On Monday, 12 November 2012 19:08:09 UTC-6, Julien Courteau wrote: > > Hello All, > After converting to 2.2.1 I've got the following error message: > "<type 'exceptions.TypeError'> format requires a mapping" > > when I try to log on for accessing an action that requires > authentification / authaurization such as: > @auth.requires_membership('admin') > def f(): ... > > Here is an extract of the traceback: > > > *File /home/julien/web2py/gluon/languages.py > inparams_substitution at line > 855* > Function argument list > > (self=<gluon.languages.translator object>, > message='User %(id)s Logged-in', symbols=("<Row \x1e'username': > 'julien', 'first_name': 'Julie...f9da1adefd98', 'registration_key': '', > 'id': 12\x1f>",)) > Code listing > > 850. > 851. > 852. > 853. > 854. > 855. > > 856. > 857. > 858. > 859. > > if part == s: > part = regex_plural_dict.sub(sub_dict, s) > if part == s: > return m.group(0) > return part > message = message % symbols > > message = regex_plural.sub(sub_plural, message) > return message > > def translate(self, message, symbols): > > Variables symbols("<Row \x1e'username': > 'julien', 'first_name': 'Julie...f9da1adefd98', 'registration_key': '', > 'id': 12\x1f>",)message'User %(id)s Logged-in' > > Anybody have a clue? > > Thanks. > --