Надеюсь что кто-нибудь сюда еще заглядывает.
Использую z3c.indexer, все работает хорошо, только вот проблема с
удалением объектов, даже не удаление, а unindex(obj).
Вываливается ошибка:
Module zope.intid:89 in getId
>> raise KeyError(ob)
KeyError: <... object at 0x37f9758>
При создании и изменении объекта (index(obj)) проблем нет, getId в
модуле zope.intid выдает id, а при unindex валится :(
Никто не встречался с этим?
> Никто не встречался с этим?
скорее всего ты даешь объект проксированный, и прав не хватает
сними секьюрити прокси или разберись с правами
from zope.security.proxy import removeSecurityProxy
obj = removeSecurityProxy(obj)
--
Anatoly Bubenkov
+380(66)6358527
Zojax inc (http://zojax.com/)
Что самое интересное, так это что при одинаковых условиях doIndex в
классе наследуемом от z3c.indexer.indexer.MultiIndexer работает, а
doUnIndex не работает.
При этом я физически не удаляю объект, а только посылаю сообщение
zope.lifecycleevent.ObjectRemovedEvent.
Ничего не понимаю :(
и посылать такое событие при этом не удалять физически довольно странно,
зачем?
>
> для отладки
>
если такая жесткая отладка, то в обработчике взвести исключение чтобы не
закоммитилась транзакция, но както это все не очень
IntIdRemovedEvent взводится ведь в обработчике ObjectRemoved, потому
никакой гарантии что будет intid в твоем обработчике ObjectRemoved нет,
обработчики ведь не упорядочиваются,