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 <[email protected]> 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 <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > what do you mean by "fails" can you provide a test case?
>
> > On Mar 28, 5:15 pm, carlo <[email protected]> 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