Plone-ComponentLookUpError阻止我删除Plone站点?

Plone-ComponentLookUpError阻止我删除Plone站点?,plone,plone-4.x,Plone,Plone 4.x,我正在尝试删除正在测试的Plone站点。但是,当我删除它时,我会得到一个错误 从控制台: Traceback (innermost last): Module ZPublisher.Publish, line 138, in publish Module ZPublisher.mapply, line 77, in mapply Module ZPublisher.Publish, line 48, in call_object Module OFS.ObjectManager,

我正在尝试删除正在测试的Plone站点。但是,当我删除它时,我会得到一个错误

从控制台:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module OFS.ObjectManager, line 540, in manage_delObjects
  Module OFS.ObjectManager, line 391, in _delObject
  Module zope.event, line 31, in notify
  Module zope.component.event, line 24, in dispatch
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module zope.component.event, line 32, in objectEventNotify
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module Products.CMFCore.CMFCatalogAware, line 271, in handleContentishEvent
  Module Products.CMFCore.CMFCatalogAware, line 76, in unindexObject
  Module Products.CMFCore.CatalogTool, line 280, in unindexObject
  Module Products.CMFPlone.CatalogTool, line 354, in uncatalog_object
  Module Products.ZCatalog.ZCatalog, line 508, in uncatalog_object
  Module Products.ZCatalog.Catalog, line 383, in uncatalogObject
  Module Products.PluginIndexes.common.UnIndex, line 286, in unindex_object
  Module Products.PluginIndexes.UUIDIndex.UUIDIndex, line 98, in removeForwardIndexEntry
  Module z3c.relationfield.relation, line 79, in __cmp__
  Module z3c.relationfield.relation, line 82, in _sort_key
  Module z3c.relationfield.relation, line 31, in from_path
  Module plone.app.relationfield.monkey, line 14, in get_from_object
  Module z3c.relationfield.relation, line 110, in _object
  Module zope.component._api, line 169, in getUtility
ComponentLookupError: (<InterfaceClass zope.intid.interfaces.IIntIds>, '')
我遇到了一个类似的问题,其中一个答案提到没有安装plone.app.relationfield或plone.app.intId。我有plone.app.relationfield(RelationValue)和plone.app.intId(plone.app.intId:install utility)


我这样做基本上是为了让新的_obj可以通过方便地调用_object从obj(转换对象)获取信息,反之亦然。但是,我猜这是导致此错误的原因,我应该使用back引用从obj获取信息的new_obj?

基本上阻止您删除站点的是每次触发的事件(运行您提到的麻烦代码)。为了防止这种行为,我可以建议执行以下操作:

$ cd {buildout-dir}
$ bin/zopepy
> from transaction import commit
> app._delObject('Plone', suppress_events=True)
> commit()

通常,不建议对Plone站点内的对象执行此操作,因为这可能会阻止门户目录的更新,并导致其他副作用。但当您删除整个站点时,这并不重要。

基本上阻止您删除站点的是每次触发的事件(运行您提到的麻烦代码)。为了防止这种行为,我可以建议执行以下操作:

$ cd {buildout-dir}
$ bin/zopepy
> from transaction import commit
> app._delObject('Plone', suppress_events=True)
> commit()

通常,不建议对Plone站点内的对象执行此操作,因为这可能会阻止门户目录的更新,并导致其他副作用。但是,当您删除整个网站时,这并不重要。

如果我没有提供足够的详细信息或这是一个重复的问题,我深表歉意,但不幸的是,我丢失了。您可能会更幸运地在我们的论坛上发布问题,(更多的眼球),虽然我会在论坛上贴一个链接到你的问题在这里。不幸的是没有足够的信息来帮助你;我想你可能有一些事件订阅者,当你试图删除该网站时被调用;您应该尝试定位违规事件并跳过其ZCML注册;重新启动实例并重试。@T.KimNguyen感谢您发布问题的链接。我很感激。我会试着在那里发帖。@hvelard谢谢你的回复。我想可能就是这样。如果我发现了,我会与大家分享。如果我没有提供足够的细节,或者这是一个重复的问题,我很抱歉,但我很不幸地迷路了。你可能会更幸运地在我们的论坛上发布问题,(更多的眼球),尽管我会在论坛上发布一个链接到你的问题在这里。不幸的是,没有足够的信息来帮助你;我想你可能有一些事件订阅者,当你试图删除该网站时被调用;您应该尝试定位违规事件并跳过其ZCML注册;重新启动实例并重试。@T.KimNguyen感谢您发布问题的链接。我很感激。我会试着在那里发帖。@hvelard谢谢你的回复。我想可能就是这样。如果我发现了,我会和大家分享。谢谢你们的回复。谢谢你抽出时间。我最终发现另一个产品中存在另一个关于关系价值破坏的问题。但我很感激你能分享这一点。对于我来说,这是一个比删除data.fs更方便的选择。感谢您的回复。谢谢你抽出时间。我最终发现另一个产品中存在另一个关于关系价值破坏的问题。但我很感激你能分享这一点。对我来说,这是一个比删除data.fs更方便的选择。
def myObjectTransitioned(obj,event):

    ....
    action = event.status['complete']
    if action == 'activate':
        .....
        try:
            new_obj = api.content.create(container=OtherObjs,portal_type='my.object.anotherobject',
               title=a_concat_title, id=a_concat_title)
            int_ids = getUtility(IIntIds)

            obj.relatedItems.append(RelationValue(int_ids.getId(new_obj)))
            new_obj.relatedItems.append(RelationValue(int_ids.getId(obj)))

            obj.reindexObject()
            new_obj.reindexObject()
        except:
            print "failed creation"            
$ cd {buildout-dir}
$ bin/zopepy
> from transaction import commit
> app._delObject('Plone', suppress_events=True)
> commit()