[Zope] AttributeError: LazyMap instance has no attribute '_product'

Dieter Maurer dieter at handshake.de
Mon Dec 4 13:37:18 EST 2006


Peter Bengtsson wrote at 2006-12-4 11:52 +0000:
> ...
>If I try to do it in code like this::
>
>  def _uploadPhoto(self, file):
>      adder = self.manage_addProduct['Photo'].manage_addPhoto
>      adder('photo', '', file, **photo_settings)
>
>Then I get this error::
>
>  ...
>   File "/home/peterbe/zope/zope288/Products/Mest/ProductPhotoBase.py", 
>line 122, in uploadPhoto
>     self._addProductPhoto(photo_id, unicodify(comment).strip(), photofile)
>   File "/home/peterbe/zope/zope288/Products/Mest/ProductPhotoBase.py", 
>line 130, in _addProductPhoto
>     photo_adder = self.manage_addProduct['Photo'].manage_addPhoto
>   File 
>"/home/peterbe/zope/zope288/lib/python/App/FactoryDispatcher.py", line 
>26, in __getitem__
>     return self.__bobo_traverse__(None, name)
>   File 
>"/home/peterbe/zope/zope288/lib/python/App/FactoryDispatcher.py", line 
>29, in __bobo_traverse__
>     product=self.aq_acquire('_getProducts')()._product(name)
>AttributeError: LazyMap instance has no attribute '_product'


Apparently, something at or above your "Collection" instance
defines a "_getProducts" -- as something to return a catalog search
result.

Now, "_getProducts" is assumed to be provided by the Zope application
object and not by any intermediate instance. As you see, Zope's
product accessing breaks when this requirement is violated.

Identify the "_getProducts" and rename it.



-- 
Dieter


More information about the Zope mailing list