Plone: метод catalog_object не будет добавлять мои (AT) объекты
У меня есть конвейер transmogrifier для вставки объектов в мою базу данных Zope (импорт файлов zexp из структуры каталогов). Это работает - объекты созданы; но я не добавляю их в portal_catalog.
Я добавил раздел для явного добавления объектов в каталог, вдохновленный plone.app.transmogrifier.reindexobject
: Я звоню portal_catalog.catalog_object(obj)
за каждый предмет.
Объекты существуют, и getPhysicalPath
дает правильные значения, но объекты не добавляются. Там нет сообщения об ошибке или исключения вообще.
Я пытался указать список индексов (idxs
аргумент), но это ничего не изменило. Если не указано, все индексы должны быть заполнены в любом случае, верно?
Так как это выглядит как transaction
проблема для меня (без ошибок, но в каталоге тоже ничего не хранится), я пробовал код транзакции (начало, точка сохранения, фиксация и в случае сброса исключений), но это не помогло. Когда я звоню в каталог сразу после catalog_object
вызов (portal_catalog(path='/Plonesite/full/path/to/object')
), ничего не произошло, и возвращается пустой список.
Каталог содержит объекты; даже объекты моих пользовательских типов данных (на основе AT). Даже не Folder
объекты моего импорта проиндексированы.
Без объектов в каталоге мой импорт бесполезен. Что я могу сделать?
Спасибо!
Изменить: Любая подсказка о том, как получить мои деревья объектов в каталоге приветствуется! Даже если это не может быть интегрировано в мой процесс. Мне нужно каталогизированное содержимое...
Мои пользовательские типы содержимого содержатся в Plone Catalog Tool
поле выбора страницы, но я не знаю, достаточно ли этого.
Редактировать 2: Каким-то образом мои объекты были каталогизированы - unrestrictedSearchResults
метод показывает их! Однако не может быть желательным решением использовать этот метод во всем; поэтому мне нужно как-то "не ограничивать" записи.
1 ответ
Оказалось, что у меня есть monkey:patch
(xmlns:monkey="http://namespaces.plone.org/monkey"
) для Products.CMFPlone.CatalogTool.CatalogTool.searchResults
Способ; это фильтрует каталог для моего дополнительного поля subportal
если не указано специальное значение для него - даже в представлении управления... К сожалению, у меня не было возможности указать это специальное значение в этом представлении.
Таким образом, решение было отсеять все неправильные значения (для subportal
s, которые не существуют в другом дереве Zope), чтобы значение по умолчанию вступило в силу.
Боюсь, что это довольно специфично для моей установки...