The reason is session.button1 returns None if the key is not found.... whereas session['button1'] raises an exception when the key is not found.
This is typically python behavior. -- Thadeus On Sat, May 8, 2010 at 11:44 PM, ionel <[email protected]> wrote: > I think I found a bug. > > Traceback (most recent call last): > File "G:\dev\proj\python\web2py\gluon\restricted.py", line 178, in > restricted > exec ccode in environment > File "G:\dev\proj\python\web2py\applications\myapp/views\default/ > index.html", line 97, in <module> > KeyError: 'button1' > > If you don't have any session file in the session folder > session['button1'] it is not working, but session.button1 it does. > You need to delete all the session files to replicate the bug. > > Thanks. > > ionel > > > On May 9, 12:05 am, ionel <[email protected]> wrote: >> Mea culpa! >> >> Yes, they are equivalent. My key was empty... sorry. I think I'm >> tired... >> >> Thank you very much. >> >> ionel >> >> On May 8, 11:27 pm, mdipierro <[email protected]> wrote: >> >> > They should be equivalent. Can you show the traceback? >> >> > On May 8, 9:54 pm, ionel <[email protected]> wrote: >> >> > > But I allready did that... and its working... >> >> > > Something like that: >> >> > > if not session.c: >> > > c = MyClass() >> > > session.c = c >> > > else: >> > > c = session.c >> >> > > But my question was why I cannot use session['c'] instead of session.c >> >> > > Thank you! >> >> > > i >> >> > > On May 8, 9:31 pm, mdipierro <[email protected]> wrote: >> >> > > > You cannot store your own classes in the session because the session >> > > > is retrieved before your own classes are defined. You can only store >> > > > in session primitive types. You can serialize your objects yourself. >> >> > > > On May 8, 7:30 pm, ionel <[email protected]> wrote: >> >> > > > > Hello, >> >> > > > > I'd like to have something like that: >> >> > > > > class MyClass(): >> > > > > def __init__(self, id) >> > > > > self.id = id >> >> > > > > c = MyClass('some_id') >> >> > > > > session[c.id] = c >> >> > > > > I do not see a solution for this. >> > > > > Can somebody help me? >> >> > > > > Thanks. >> >> > > > > i. >

