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

Reply via email to