[Zope3-Users] problems with catalog: indexing field from an objects adapter

Bernd Dorn bernd.dorn at lovelysystems.com
Wed Jun 6 15:10:32 EDT 2007


On 28.03.2007, at 13:19, Dominique Lederer wrote:

> hi,
>
> I want to index a field from an object, which works perfectly via  
> Catalog and
> Field Index.
>
> But if my callable field returns a value, which is returned from an  
> adapter of
> the object, things get complicated for me:
>
> i create my object an add it to a container (not via zmi).
> i do the notify(ObjectCreatedEvent(container[myobjectname]) thing,  
> to let the
> intid and catalog do their indexing stuff.

i am not sure, but try to fire the objectcreatedevent directly after  
creating the  object
and then add it to the container, this causes the indexing with  
objectaddedevent which is fired by the container


> i look at the Catalog statistics in the zmi, where is see, that one  
> item is indexed.
> but when i delete the object (i used
> notifiy(ObjectRemovedEvent(container[myobjectname])), there is  
> still something
> residing in the index, which causes a KeyError in the intid  
> utility, when it
> trys to getObject.

object removedevent is fired by the container, you dont have to fire it


>
> It seems, that the index is indexing the object and the adapter via  
> the same
> unique intid, and then deletes only the objects index, and not the  
> adapter?
>
> since my adapter is only accessing annotations on the object, i  
> could feed the
> index directly via the annotation value, but that goes against the  
> use of
> adapters and the idea, not to change the object implementation.
>
> Do you have any idea, what i have to do?
> Did i forget an event? or something else?
>
> thanks
> cheers Dominique
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users



More information about the Zope3-users mailing list