Plone: catalog_object 方法不会添加我的 (AT) 对象

Plone: catalog_object method won't add my (AT) objects

我有一个 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: 我的对象 以某种方式编目 - the unrestrictedSearchResults method 展示了它们!但是,全面使用此方法并不是理想的解决方案;所以我需要以某种方式 "un-restrict" 条目。

原来我有一个monkey:patchxmlns:monkey="http://namespaces.plone.org/monkey")用于Products.CMFPlone.CatalogTool.CatalogTool.searchResults方法;这过滤了我的附加字段的目录 subportal 除非给出了它的特殊值 - 即使在管理视图中......不幸的是,我无法在该视图中指定这个特殊值。

因此,解决方案是清除所有错误值(对于 subportal 不存在于其他 Zope 树中的值)以使默认值生效。

我的设置很具体,恐怕...