Вам нужно REQUEST.response.redirect ("url") . Я почти уверен, что zExceptions.Redirect - это способ, которым Zope внутренне обрабатывает вызовы response.redirect (). Убедитесь, что вы вызываете еще одно исключение после вызова redirect (), чтобы транзакция была отменена.
Тем не менее, это, конечно, кажется неправильным способом сделать это. Во-первых, вы будете выполнять как минимум двойное индексирование, которое выполняется до прекращения транзакции. Индексирование по каталогам - это самая дорогая часть обработки запроса, которая модифицирует контент, поэтому это создает расточительную нагрузку на ваш сервер.
События предназначены для выполнения дополнительных действий, которые только косвенно связаны с событием. То, что вы хотите, это фундаментально изменить то, что происходит, когда кто-то удаляет. Может быть, вам следует исправить / переопределить базовый метод удаления для объектов-контейнеров (папок?), Чтобы выполнить рабочий переход.