Re: [Zope-dev] How do I call an HTMLFile in context provided by a path?
Itai Tavor writes:
I have a method that receives a path: '/MyApp/SomeSpecialist/some_id/edit_html' and has to call edit_html in the context of some_id. If edit_html is a DTML Method, I can do this:
obj = REQUEST.traverse(path) I would use "restrictedTraverse" instead of "REQUEST.traverse" as it uses less magic. ...
But when edit_html is an HTMLFile in a Python Product, obj.aq_parent doesn't work. Why not?
This would mean that either your product is not derived from ExtensionClass.Base or that "HTMLFile" is not derived from "Acquisition.Implicit". Dieter
Dieter Maurer wrote:
Itai Tavor writes:
I have a method that receives a path: '/MyApp/SomeSpecialist/some_id/edit_html' and has to call edit_html in the context of some_id. If edit_html is a DTML Method, I can do this:
obj = REQUEST.traverse(path) I would use "restrictedTraverse" instead of "REQUEST.traverse" as it uses less magic.
Thanks for the tip... I thought restrictedTraverse is slower because it has to do security checks?
...
But when edit_html is an HTMLFile in a Python Product, obj.aq_parent doesn't work.
Why not?
It causes this exception: Error Type: AttributeError Error Value: edit_htmlaq_parent
This would mean that either your product is not derived from ExtensionClass.Base or that "HTMLFile" is not derived from "Acquisition.Implicit".
My product inherit does have implicit acquisition. But HTMLFile doesn't - that's the whole problem. Replacing HTMLFile with DTMLFile solves the problem, as DTMLFile derives from Acquisition.Explicit. Thanks for pointing me in the right direction. P.S Now that aq_parent is working... why can't I do absolute_url() on DTMLFiles :-( -- -- Itai Tavor -- "Je sautille, donc je suis." -- itai@optusnet.com.au -- - Kermit the Frog -- -- "What he needs now is understanding... and a confederate victory" -- -- Dr. Jacobi, Twin Peaks --
Itai Tavor writes:
P.S Now that aq_parent is working... why can't I do absolute_url() on DTMLFiles :-( "absolute_url" is provided by the class "OFS.Traverable". Apparently, "DTMLFile" is not derived from it.
Dieter
Dieter Maurer wrote:
Itai Tavor writes:
P.S Now that aq_parent is working... why can't I do absolute_url() on DTMLFiles :-( "absolute_url" is provided by the class "OFS.Traverable". Apparently, "DTMLFile" is not derived from it.
Dieter
Well, obviously... the question is why nobody saw the need to add Traversable to DTMLFiles... -- -- Itai Tavor -- "Je sautille, donc je suis." -- itai@optusnet.com.au -- - Kermit the Frog -- -- -- -- "If you haven't got your health, you haven't got anything" --
On Fri, Apr 13, 2001 at 11:13:38AM +1000, Itai Tavor wrote:
Dieter Maurer wrote:
Itai Tavor writes:
P.S Now that aq_parent is working... why can't I do absolute_url() on DTMLFiles :-( "absolute_url" is provided by the class "OFS.Traverable". Apparently, "DTMLFile" is not derived from it. Dieter
Well, obviously... the question is why nobody saw the need to add Traversable to DTMLFiles...
Maybe we overlooked it. Make your case in a Collector issue, I'd say. -- Martijn Pieters | Software Engineer mailto:mj@digicool.com | Digital Creations http://www.digicool.com/ | Creators of Zope http://www.zope.org/ ---------------------------------------------
participants (3)
-
Dieter Maurer -
Itai Tavor -
Martijn Pieters