Luca Olivetti wrote:
I stumbled into another problem: the method is useable for indexes but not for metadata. I digged into the source of ZCatalog and I saw that's because Zcatalog first calls recordify (see Catalog.py) on the object which uses MV (from Missing) to indicate a missing attribute, while each plugin index uses a different method to identify a missing attribute (for example, UnIndex.py defines an internal _merker as []).
Why would hypothesise that the real problem is that adding stuff to indexes ignores AttributeError's and KeyError's which storing it as metadata doesn't, which it should.
So if my method uses
attr=getattr(context.aq_explicit,'myattribute')
it will tipically work in a plugin index because it's wrapped in a try except block, but will not work with metadata since there's no try/except there.
So put one in yourself ;-) (well, something that works the same...) attr=getattr(context.aq_explicit,'myattribute',None) I think that's your best bet... cheers, Chris