Re: How to getId() of pt from a Script (Python)
Clemens Klein-Robbenhaar <[email protected]> Tue, 04 Oct 2005 22:04:18 +0200
| Newsgroups | gmane.comp.web.zope.page-templates |
|---|---|
| Message-ID | <[email protected]> |
José Henrique wrote: > Use "print template.getId()". > > 2005/10/4, Chris Miles <[email protected]>: > >>I have a Page Template in a folder: folder1/mypage.pt >>containing: >> <span tal:replace="here/myscript">Testing</span> >> >>myscript is a Script (Python) containing: >> print context.getId() >> return printed >> >>Now, when folder1/mypage.pt is called TTW, it displays "folder1" as the >>context.getId(), but I was expecting (and hoping) it would display >>"mypage.pt"... Isn't it being called within the "context" of mypage.pt >>? I am not sure if the solution above works that straight in the script; it does not magically inherit the "template" variable from the page template, does it? The way I would prefer to handle this is to pass the template to the script explicitely, e.g.: <span tal:replace="python:here.myscript(template)">Testing</span> Then add "template" to the parameters of Your script, and template.getId() will work. If this is to explicit for You, calling the script via: <span tal:replace="template/script">Testing</span> should do what You want: not the script is called having the template as the context (unlike "here/script", where the script has the same context as the template). Cheers, Clemens