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

Reply via email to