0

我已经使用 ploneformgen 来创建输入表单。当我尝试使用编辑选项卡在表单中使用 uwosk.pfg.d2c 适配器编辑保存的数据条目时,出现以下错误:

<FSControllerPythonScript at /MySite/update_version_on_edit used for /MySite/materials-requirement/material-requirement-form/requirement-for-approval/trial>
    Line 11
    Module Products.CMFEditions.utilities, line 109, in isObjectChanged
    Module Products.CMFEditions.CopyModifyMergeRepositoryTool, line 415, in isUpToDate
    Module Products.CMFEditions.ArchivistTool, line 396, in isUpToDate
    Module Products.CMFEditions.ZVCStorageTool, line 308, in getModificationDate
    Module Products.Archetypes.ExtensibleMetadata, line 455, in modified
    Module Products.Archetypes.BaseObject, line 237, in getField
    Module Products.Archetypes.BaseObject, line 821, in Schema
    Module zope.component.hooks, line 104, in adapter_hook
    Module archetypes.schemaextender.extender, line 146, in cachingInstanceSchemaFactory
    Module archetypes.schemaextender.extender, line 186, in instanceSchemaFactory
    Module plone.memoize.instance, line 51, in memogetter
    Module uwosh.pfg.d2c.extender, line 217, in getFields
    Module uwosh.pfg.d2c.content.dataentry, line 39, in getForm
    Module uwosh.pfg.d2c.content.dataentry, line 53, in getFormAdapter
    Module Products.CMFCore.utils, line 123, in getToolByName
    AttributeError: uid_catalog

如何修复此错误。我需要这些步骤,因为我使用 GUI 或仅 ZMI。我使用 plone 4.1、ploneformgen 1.7.1 和 d2c 适配器 2.1.5

4

1 回答 1

1

看起来该产品与 CMFEditions 结合使用会中断。尝试编辑uwosh.pfg.d2c.content.dataentry以在顶部添加导入,然后更改第 53 行以uid_catalog通过不同的路线到达。

您需要先找到该文件;uwosh.pfg.d2cbin/instance脚本中搜索。这会给你鸡蛋的位置。在 egg 中,找到文件uwosh/pfg/d2c/content/dataentry.py并在编辑器中打开它。

在顶部,与其他import语句一起,添加以下行:

from zope.app.component.hooks import getSite

并更改第 54 行(原为第 53 行,但您在顶部添加了一行);它当前显示:

catalog = getToolByName(self, 'uid_catalog')

您更改selfgetSite()使其读取的位置:

catalog = getToolByName(getSite(), 'uid_catalog')

以这种方式改变鸡蛋是便携的;您必须为站点的每次安装都这样做。如果上述更改对您有用,请将其报告给软件包的作者,以便在新版本中进行修复。

目前在包问题跟踪器中存在一个似乎相关的问题,请参阅问题 7,您可以在其中跟进。或者,您可以在新的GitHub 问题跟踪器中为此包提交工单

是的,包作者 Nathan van Gheem 也经常光顾 Stack Overflow,但你不应该指望他在这里发现问题。在受支持的位置提交问题意味着更多的人也可以找到它并提供帮助

于 2012-07-30T07:51:36.653 回答