More specifically, when you provide the "next" argument to 
SQLFORM.process(), it ultimately calls redirect(), which raises an HTTP 
exception. If you put the .process() call inside a try/except, that HTTP 
exception will get caught, and in your case, you are then ignoring it. We 
should probably spell this out more clearly in the book.

You could instead do something like:

    except Exception as e:
        if isinstance(e, HTTP):
            raise e # re-raise the exception in case of a redirect
        redirect(URL('index'))

But generally it is much better to catch specific exceptions.

Anthony

On Tuesday, December 23, 2014 2:44:57 PM UTC-5, Niphlod wrote:
>
> are you aware that in web2py any HTTP is a subclass of exception ? Never, 
> never, never use an exception without specifying what exception your code 
> may raise.
>
> On Tuesday, December 23, 2014 7:34:45 PM UTC+1, Mark Billion wrote:
>>
>> Why are you using an except without specifying the exception? Trying to 
>> catch all possible exceptions.  
>>
>> On Tuesday, December 23, 2014 1:31:21 PM UTC-5, Leonel Câmara wrote:
>>>
>>> Why are you using an except without specifying the exception? Anyway 
>>> just do this:
>>>
>>> @auth.requires_login()
>>> def cli_add():
>>>     db.client.au_usr.default = auth.user_id
>>>     form = SQLFORM(db.client, fields = ['d_fn', 'd_ln', 'd_aka', 
>>> 'd_ss'], labels = {'d_ss': 'Social Security', 'd_aka': 'Any Aliases', 
>>> 'd_65': 'Older than 65'}).process(next=URL('clients'))    
>>>     return dict(form=form)
>>>
>>>

-- 
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