Я пишу скрипт на python для импорта контента из другой CMS в Plone 4.1.По ряду причин я запускаю его так: bin/instance run path/to/myscript
У меня есть вопрос, как получить правильный контекст для папки с дефисом в ID / сокращенном имени.Например, из корня сайта Plone, называемого mysite, я могу работать с папкой «sub-folder» следующим образом:
from Products.CMFCore.utils import getToolByName
urltool = getToolByName(app.mysite, "portal_url")
portal = urltool.getPortalObject()
folder = getattr(portal, 'sub-folder')
Но если я затем захочу создать папку или страницу в этой подпапке-folder следующее выдает ошибку: «AttributeError: sub»
urltool = getToolByName(app.mysite.sub-folder, "portal_url")
portal = urltool.getPortalObject()
И выполнение того же в папке «Новости» (без дефиса) не приводит к ошибке:
urltool = getToolByName(app.mysite.news, "portal_url")
portal = urltool.getPortalObject()
Простая попытка portal.sub-folder выдает ту же ошибку.
Так что же будет кодом Python для получения правильного контекста "http://localhost:8080/mysite/sub-folder", чтобы я мог затем успешно вызвать метод invokeFactory и создать папкуили страницу в папке mysite / sub-folder?
Что если мне нужно найти контекст "http://localhost:8080/mysite/sub-folder/2nd-level"?
В найденной мной онлайн-документации, похоже, учитываются только папки с именем dog илиновости, которые не имеют дефис в ID / Shortname.Однако, если вы создаете эти элементы вручную в Plone, короткие имена, очевидно, имеют дефисы, и поэтому должен быть способ получить правильный контекст папки.