Anders Bruun Olsen wrote at 2005-10-20 11:52 +0200: >On Wed, Oct 19, 2005 at 09:47:50PM +0200, Dieter Maurer wrote: >> >Zope has encountered a problem publishing your object. >> >Cannot locate object at: http://localhost:8080/vitester/asonhe >> This is a "NotFound" problem. >> Zope is unable to locate "vitester/asonhe" >> Are you sure, "vitester/asonhe" is there? > >asonhe is not there, but vitester has a __getitem__ method which >executes a PageTemplateFile instance and returns it. I.e.
Thus, it returns a string. However, ZPublisher requires that all intermediate traversal steps return an object which is not of a simple type and does have a docstring. A string is a simple type, you cannot use it during traversal... >return self.test(self, self.REQUEST, value=value) >(where self.test is a PageTemplateFile) This results in a string (a simple type)... >It actually works if I just do: > >return self.test.__of__(self) This results in a "PageTemplateFile", which has a docstring and is not of simple type. >But that way I can't put any values in there. How can I do this then? Can can return a wrapper and give it a docstring. class Wrapper: '''a wrapper around a string.''' # this is the docstring def __init__(self, str): self.str = str def __call__(self): return self.str Some security declarations might be necessary as well. Probably, a class attribute "__roles__ = None" is sufficient. -- Dieter _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )