我有一个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显示了它们!但是,它无法成为全程使用此方法的理想解决方案;所以我需要以某种方式“取消限制”条目。
答案 0 :(得分:0)
事实证明,monkey:patch
方法有xmlns:monkey="http://namespaces.plone.org/monkey"
(Products.CMFPlone.CatalogTool.CatalogTool.searchResults
);这会过滤我的附加字段subportal
的目录,除非给出了特殊值 - 即使在管理视图中...不幸的是,我无法在该视图中指定此特殊值。
因此,解决方案是清除所有错误的值(对于subportal
不存在于另一个Zope树中)以使默认值生效。
我的设置非常具体,我害怕...