I misunderstood it, but it's clear now. Thank you Anthony!

Em quinta-feira, 10 de julho de 2014 00h58min22s UTC-3, Anthony escreveu:
>
> 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.

Reply via email to