I'm using an ajax call to default.py controller. The default.py sets a 
session variable. Paraphrased, it looks like this:

# model
if not session.myvars:
    session.myvars = dict(
        somevar=dict(),
        othervar=dict(),
        ...
        )


# view
<script> 
...
        ajax("{{= URL('default', 'setvar', args=[...])}}",[],":eval");
...
</script>



# default.py
if False:
    session = current.session  # to make Eclipse happy

def setvar():
    ...
    del session.myvars['somevar']
    ...
    return ''



In other controllers, the session.myvars['somevar'] is given a useful value.

Here's the really strange thing. If the ajax script is triggered, the 
session.myvars['someval'] dict gets deleted as desired. However, only 
temporarily! When another controller later on uses session.myvars, the old 
session.myvars['somevar'] is still in existence.

If I reproduce this by putting the del session.myvars['somevar'] in one of 
my other controllers, the session.myvars['somevar'] gets deleted 
permanently, as desired.

This doesn't just happen for deleting session variables. It also happens 
for setting session variables inside the default.py controller.

Why is this happening? Is there something special about default.py that I 
don't know about? Are you not supposed to manipulate session variables in 
there?

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