我的任务是从 Plone 3.1.2 网站卸载内容并将有关内容的信息加载到 SQL 数据库 + 文件系统
我重新创建了网站,访问了 ZODB 并重新创建了对象和文件夹结构。我还能够读取文件夹、文件和文档的属性。我无法让 ATDocument 的 .getText() 方法工作。Traceback 看起来像这样:
回溯(最近一次通话最后):
File "C:\Users\jan\Eclipse_workspace\Plone\start.py", line 133, in ?
main()
File "C:\Users\jan\Eclipse_workspace\Plone\start.py", line 118, in main
print dokument.getText()
File "e:\Program Files\Plone 3\Data\Products\Archetypes\ClassGen.py", line 54, in generatedAccessor
File "e:\Program Files\Plone 3\Data\Products\Archetypes\BaseObject.py", line 828, in Schema
TypeError: ('Could not adapt', <ATDocument at /*object_path*>, <InterfaceClass Products.Archetypes.interfaces._schema.ISchema>)
我怀疑将对象连接到接口 ISchema 存在问题,但我以前从未使用过 Plone,也不知道它是对象模型。
有什么建议可能是错误的或遗漏的,我该如何解决它和/或下一步该怎么做?我怀疑我必须以某种方式将 ISchema 接口类与这个对象连接起来,但不知道从哪里开始。有什么建议么?
我会很感激任何帮助,因为我现在被困了 2 天并且没有前进。
我对 ZCML 格式或如何编辑它一无所知。因为>>> print dokument.getText()
在调试模式之后,脚本跳转到makeMethod()
生成器类中的方法,我假设脚本没有执行.getText()
,而是尝试创建这个方法。
由于inspect.getmembers(dokument)
返回一个getText()
方法,我真的很困惑。你知道哪个 ZCML 文件可能与 ATDocument 类有关吗?或者我在哪里可以找到关于这个主题的任何信息?
我的 start.py 文件除了以下导入之外没有其他作用:
from ZODB.FileStorage import FileStorage
from ZODB.DB import DB
from OFS.Application import Application
from BTrees import OOBTree
from Products.CMFPlone.Portal import PloneSite
然后它可以访问文档对象并尝试执行.getText()
编辑 213-03-26 15:27(格林威治标准时间):
关于 .zcml 文件 我收到的站点是 3 个文件夹:产品(提取到\Plone 3\Data
)、lib 和 package-includes。
在 lib 中有一个包含 3 个子文件夹的 python 文件夹:'common'、'abc' 和 'def'(名称更改为不发布客户信息)。这些子文件夹中的每一个都包含一个 configure.zcml 文件,其中一个还包括 override.zcml 文件。
在 package-includes 文件夹中有 4 个文件,每个文件长 1 行。它们包含以下几行:
<include package="abc" file="configure.zcml" />
<include package="def" file="overrides.zcml" />
<include package="common" file="configure.zcml" />
<include package="def" file="configure.zcml" />
这些 zcml 文件目前没有被复制。我在哪里可以复制这些以导入这些?