Есть у меня код под Zope3, который создаёт контейнер для сайта,
создаёт и регистрирует в нём необходимые для сайта утилиты.
PS: можно и все одним кликом. тут не должно быть ровным счетом никаких
проблем. Главное - это порядок выполнения.
Про добавлении intids мистика, к сожалению, есть. И даже ks.installtool от нее
не спасает, правда, в документации на него решение описано.
Итак, про мистику читаем тут:
http://eaglenest.ru/mirror/doc.orlov/Zope3/SiteManager/SiteManager.txt
Как видите, решение на само деле очень простое, сразу после создания
sitemanger надо зарегистрировать его также, как это делает траверсер. До этих
пор в ваш код не вызывает ваш SiteManager, и, соответственно, IntIds.
Об этом можно прочитать тут:
https://code.keysolutions.ru/svn/ks.installtool/trunk/src/ks/installtool/installtool_doc.txt,
приложение 1.
Впрочем фрагмент кода я процитирую, что бы долго не искали
from zope.app.component.hooks import setSite
from zope.app.component import site
def installSiteManager(context, **kw):
""" Преобразует папку контекста в сайт
"""
# Создаём локальный сайт-менеджер
sm = site.LocalSiteManager(context)
# Устанавливаем созданный менеджер сайта в контекст
context.setSiteManager(sm)
# Делаем контекст сайтом
setSite(context)
# Выполнено успешно
return "Success"
Собственно это код из реального проекта, в котором после этого много чего
отрабатывалось на основе IntIds, и делалается все одной кнопкой :).
> Вот полный код скрипта добавления сайта.
Посмотрел ваш код. Кажется это оно и есть, добавтье после
>> site = self.context[self._name]
вот это:
> > setSite(site)
--
Andrey Orlov aka "Cray", Инженер
+ 79262229963, http://eaglenest.ru