If you just want to specify a URL for redirect, you can do so without the lambda:
auth.settings.on_failed_authentication = URL('painel', 'index') However, if you do define a lambda (or any callable), it should accept an argument. Anthony On Wednesday, July 9, 2014 9:31:17 PM UTC-4, Júlia Rizza wrote: > > I've completely forgot about the on_failed_authentication, sorry. > > *models/db.py* > auth.settings.on_failed_authentication = lambda: redirect(URL('painel', > 'index')) > > (web2py version 2.8.2-stable) > > > Em quarta-feira, 9 de julho de 2014 21h31min19s UTC-3, Anthony escreveu: >> >> Did you change auth.settings.on_failed_authentication from its default >> value? >> >> On Wednesday, July 9, 2014 8:11:25 PM UTC-4, Júlia Rizza wrote: >>> >>> Hello, >>> >>> I have an app runing in production on Apache and sometimes when >>> navigating over it I receive a ticket with a lambda error. It happens >>> ramdomly in a way that I wasn't able to predict what was causing it: >>> already ocurred in a function called dashboard, in another called invite >>> and some others. But the fact is that I do not call lambda in none of them. >>> I only use lambda two times: >>> >>> *models/validators.py* >>> db.board.slug.compute = lambda row: IS_SLUG()(row.title)[0] >>> >>> *controllers/painel.py | function: board()* >>> try: >>> int(request.args(1)) >>> user = db(db.auth_user.username == request.args(0)).select().first() >>> board = db((db.board.created_by == user.id)&(db.board.id == >>> request.args(1))).select().first() >>> except ValueError: >>> user = db(db.auth_user.username == request.args(0)).select().first() >>> board = db((db.board.created_by == user.id)&(db.board.slug == >>> request.args(1))).select().first() >>> except TypeError: >>> raise HTTP(404, T('No board specified!')) >>> >>> text_type = db(db.text_type.board == board.id).select() >>> url_type = db(db.url_type.board == board.id).select() >>> image_type = db(db.image_type.board == board.id).select() >>> video_type = db(db.video_type.board == board.id).select() >>> >>> merged_records = itertools.chain(text_type, url_type, image_type, >>> video_type) >>> contents = sorted(merged_records, key=lambda record: >>> record['topic_position']) >>> >>> The ticket *traceback* is: >>> <type 'exceptions.TypeError'> <lambda>() takes no arguments (1 given) >>> >>> 1. >>> 2. >>> 3. >>> 4. >>> 5. >>> 6. >>> 7. >>> 8. >>> 9. >>> 10. >>> 11. >>> 12. >>> >>> Traceback (most recent call last): >>> File "/home/www-data/web2py/gluon/restricted.py", line 217, in restricted >>> exec ccode in environment >>> File "/home/www-data/web2py/applications/cachola/controllers/painel.py" >>> <https://cacho.la/admin/default/edit/cachola/controllers/painel.py>, line >>> 519, in <module> >>> File "/home/www-data/web2py/gluon/globals.py", line 372, in <lambda> >>> self._caller = lambda f: f() >>> File "/home/www-data/web2py/gluon/tools.py", line 3229, in f >>> '?_next=' + urllib.quote(next)) >>> File "/home/www-data/web2py/gluon/tools.py", line 91, in call_or_redirect >>> redirect(f(*args)) >>> TypeError: <lambda>() takes no arguments (1 given) >>> >>> >>> Can somebody help me to understand where is the problem? >>> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.