【发布时间】:2015-10-20 18:46:17
【问题描述】:
我有一个 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 展示了它们!但是,完全使用这种方法并不是理想的解决方案;所以我需要以某种方式“取消限制”条目。
【问题讨论】:
-
不是您原始问题的解决方案,但您仍然可以前往 ZMI 并单击目录工具中的“清理并重建”按钮。它将索引您的所有对象。
-
+1 对 keul 所说的话。我对此的记忆很模糊,但我似乎记得 plone.app.transmogrifier.reindexobject 并没有像我预期的那样对我有用。我通常不得不在变形器运行后手动重建目录。我也很想知道是否还有其他方法。
-
我知道
Clean and rebuild操作;可悲的是,它没有帮助(还)。可能我的对象仍然存在问题,但我怀疑是原因的字段没有解决问题......
标签: plone archetypes plone-4.x