wow! I would never have thought about the missing space while the extra curly brace was a typo in my post, thank you!
On 29 Mar, 16:48, Massimo Di Pierro <massimo.dipie...@gmail.com> wrote: > The problem is that > > {{session.mysession={}}} > {{session.mysession['mylabel']=comment.body}}} > > should be > > {{session.mysession={} }} # missing space > {{session.mysession['mylabel']=comment.body}} # too many } > > On Mar 29, 3:11 am, carlo <syseng...@gmail.com> wrote: > > > Massimo, I omitted a test case because it seems occurring in any of my > > components and it can easily reproduced. > > > Here using the component example in the Book (modified a bit): > > > model: > > > db.define_table('comment', > > Field('body','text',label='Your comment'), > > Field('posted_on','datetime',default=request.now)) > > db.comment.posted_on.writable=db.comment.posted_on.readable=False > > > controller: > > > def index(): > > > return dict() > > > def post(): > > return dict(form=crud.create(db.comment), > > comments=db(db.comment.id>0).select()) > > > views: > > default/post.load: > > > {{for comment in comments:}} > > <div class="comment"> > > on {{=comment.posted_on}} > > says <span class="comment_body">{{=comment.body}}</span> > > </div> > > {{pass}} > > {{session.mysession={}}} > > {{session.mysession['mylabel']=comment.body}}} > > {{=form}} > > > default/index.html: > > > {{extend 'layout.html'}} > > {{=LOAD('default','post.load',ajax=True)}} > > > This is part of the ticket: > > > Traceback (most recent call last): > > File "E:\Python26\web2py\gluon\restricted.py", line 186, in > > restricted > > ccode = compile2(code,layer) > > File "E:\Python26\web2py\gluon\restricted.py", line 173, in compile2 > > return compile(code.rstrip().replace('\r\n','\n')+'\n', layer, > > 'exec') > > File "E:\Python26\web2py\applications\test/views\default/post.load", > > line 11 > > session.mysession['mylabel']=comment.body > > ^ > > SyntaxError: invalid syntax > > > But if you change the component post.load as: > > > {{for comment in comments:}} > > <div class="comment"> > > on {{=comment.posted_on}} > > says <span class="comment_body">{{=comment.body}}</span> > > </div> > > {{pass}} > > {{session.mysession=""}} > > {{session.mysession=comment.body}} > > {{=form}} > > > This is working. > > > carlo > > > On 29 Mar, 01:22, Massimo Di Pierro <massimo.dipie...@gmail.com> > > wrote: > > > > what do you mean by "fails" can you provide a test case? > > > > On Mar 28, 5:15 pm, carlo <syseng...@gmail.com> wrote: > > > > > I have a behaviour I can not explain. > > > > > In a controller this is a regular syntax: > > > > > session.mysession={} > > > > session.mysession['myfield']=myvalue > > > > > but in a .load component the same fails. > > > > > On the other side: > > > > > session.simplevalue=myvalue > > > > > works with no problem even in components. > > > > > Does anyone has an explanation? > > > > > carlo > >