[Zope3-Users] Re: How can I get a viewlet's docstring from within a viewlet manager?

Philipp von Weitershausen philipp at weitershausen.de
Sat Jun 14 05:22:19 EDT 2008

Andreas Johnsen wrote:
> Let's say I have defined 'class MyViewlet(viewlet.ViewletBase)' and
> registered it with the <browser:viewlet> directive. The class
> 'MyViewlet' has a docstring. How can I get this docstring from the
> render() method in a viewlet manager?
> In the viewlet manager the viewlet instance is an instance of
> 'zope.viewlet.metaconfigure.MyViewlet' and not my class 'MyViewlet'.

Yeah. Dynamic class generation sucks. For some reason, the bad example 
led by browser:page et.al. has caught on and now nearly all 
browser-related ZCML directives do it.

> Is there a path from 'zope.viewlet.metaconfigure.MyViewlet' to the
> class 'MyViewlet' or any other suggestions on how to get the
> docstring defined in my class from a viewlet manager?

You could get the right base class from __bases__ and look at that 
class's __doc__.

More information about the Zope3-users mailing list