Execute a PageTemplate in another context
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. -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com
+-------[ 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(...) ? -- Andrew Milton akm@theinternet.com.au
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) But that didn't work. -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com
+-------[ 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@theinternet.com.au
participants (2)
-
Andrew Milton -
Peter Bengtsson