Re: [Zope] Renderable Base ZClass
This solves the REQUEST problem, but an error then occurs with the DTML <!--#in object--> tag, which is the next tag down in the DTML method. How can I enable DTML tag parsing, for "in", "with", and other tags tags? Is it just a matter of passing the right arguments? The script and the error traceback are included below. Cheers Kevin SCRIPT -------------------------------------- import Acquisition class Renderable: def __str__(self): theRequest=self.REQUEST if theRequest: theObject = getattr(self, 'render') return theObject(theRequest) else: return "no request" TRACEBACK -------------------------------------- Error Type: KeyError Traceback (innermost last): File C:\Programs\Internet\kevin\kevin\lib\python\ZPublisher\Publish.py, line 214, in publish_module File C:\Programs\Internet\kevin\kevin\lib\python\ZPublisher\Publish.py, line 179, in publish File C:\Programs\Internet\kevin\kevin\lib\python\Zope\__init__.py, line 201, in zpublisher_exception_hook (Object: ElementWithAttributes) File C:\Programs\Internet\kevin\kevin\lib\python\ZPublisher\Publish.py, line 165, in publish File C:\Programs\Internet\kevin\kevin\lib\python\ZPublisher\mapply.py, line 160, in mapply (Object: test) File C:\Programs\Internet\kevin\kevin\lib\python\ZPublisher\Publish.py, line 102, in call_object (Object: test) File C:\Programs\Internet\kevin\kevin\lib\python\OFS\DTMLMethod.py, line 145, in __call__ (Object: test) File C:\Programs\Internet\kevin\kevin\lib\python\DocumentTemplate\DT_String.py, line 502, in __call__ (Object: test) File C:\Programs\Internet\kevin\kevin\lib\python\Products\Renderable\Renderable.p y, line 16, in __str__ (Object: Renderable) File C:\Programs\Internet\kevin\kevin\lib\python\OFS\DTMLMethod.py, line 145, in __call__ (Object: render) File C:\Programs\Internet\kevin\kevin\lib\python\DocumentTemplate\DT_String.py, line 502, in __call__ (Object: render) File C:\Programs\Internet\kevin\kevin\lib\python\DocumentTemplate\DT_In.py, line 630, in renderwob (Object: activeURLs) KeyError: (see above) -----Original Message----- From: Brian Lloyd <Brian@digicool.com> To: 'alex@mop.no' <alex@mop.no>; 'ap619@chebucto.ns.ca' <ap619@chebucto.ns.ca> Cc: 'zope@zope.org' <zope@zope.org> Date: November 2, 1999 11:25 AM Subject: RE: [Zope] Renderable Base ZClass
If there is no way to pass REQUEST to __str__(), I believe this is a minor shortcoming and should be remedied in the Zope DTML core. Such as by testing for the presence of an alternative method called __render__(), for example, and using that instead.
While it is not passed explicitly, remember that REQUEST can almost always be accessed through acquisition:
def __str__(self): theRequest=self.REQUEST ... return theResult
Below is a forward of a discussion about the Renderable Base ZClass Product and how it could be integrated into the ZOPE Core.
I'd like to see it incorporated into ZClasses - Under the "Basic" tab of the ZClass, having a selectlist labelled "Render Method" from which you'd choose the DTML method to be be displayed when the object is called as <!--#var myObject-->.
Can anyone offer suggestions or comments as to a better way to accomplish this?
After reading this, I'm not sure I understand what the core problem is - is it that the REQUEST was not available as an explicit argument, or am I missing something deeper here?
Brian Lloyd brian@digicool.com Software Engineer 540.371.6909 Digital Creations http://www.digicool.com
participants (1)
-
Kevin Howe