[Zope] Execute a PageTemplate in another context

Andrew Milton akm at theinternet.com.au
Mon Feb 4 10:49:19 EST 2008


+-------[ Peter Bengtsson ]----------------------
| Andrew Milton wrote:
| >+-------[ Peter Bengtsson ]----------------------
| >| Is it possible to execute a PageTemplate as if it was located somewhere 
| >| else?
| >| The PageTemplate has this code::
| >| <html><br tal:replace="here/absolute_url_path"/></html>
| >| 
| >| And it's located in a folder called /foo/bar/ which are normal Zope 
| >| Folder objects.
| >| I'm executing this template object from Python code (not from URL 
| >| travsersal) and the rendered result is:
| >| <html>/foo/bar</html>
| >| 
| >| But what if I want to execute it as if it existed in another context, 
| >| e.g. /barfoo
| >| Is that possible?
| >| 
| >| I can imagine a some convoluted solutions but was hoping for something 
| >| easy and obvious that I've missed.
| >
| >context.foo.bar.barfoo.template_id(...) ?
| >
| It's not done like that. I receive it the PageTemplate object as is 
| already. I tried this::
| 
|  return apply(template_obj, (self.some.other.context, self.REQUEST), kw)

getattr(foo.bar.barfoo, template_obj.getId())(....) ?


-- 
Andrew Milton
akm at theinternet.com.au


More information about the Zope mailing list