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

时间:2015-10-20 18:46:17

标签: plone archetypes plone-4.x

我有一个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显示了它们!但是,它无法成为全程使用此方法的理想解决方案;所以我需要以某种方式“取消限制”条目。

1 个答案:

答案 0 :(得分:0)

事实证明,monkey:patch方法有xmlns:monkey="http://namespaces.plone.org/monkey"Products.CMFPlone.CatalogTool.CatalogTool.searchResults);这会过滤我的附加字段subportal的目录,除非给出了特殊值 - 即使在管理视图中...不幸的是,我无法在该视图中指定此特殊值。

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

我的设置非常具体,我害怕...