我的任务是从Plone 3.1.2网站卸载内容,并将有关内容的信息加载到SQL数据库+文件系统中
我重新创建了网站,访问了ZODB并重新创建了对象和文件夹结构。我还能够读取文件夹、文件和文档的属性。我无法使ATDocument的.getText()方法工作。回溯如下:
回溯(最近一次呼叫):
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接口类与这个对象连接起来,但是不知道从哪里开始。有什么建议吗?在
我会很乐意为任何帮助,因为我现在被困了两天,没有前进。在
我对ZCML格式一无所知,也不知道如何编辑它。
因为在调试模式下的>>> print dokument.getText()
之后,脚本跳到生成器类中的makeMethod()
方法,所以假设脚本不执行.getText()
,而是尝试创建这个方法。在
由于inspect.getmembers(dokument)
返回一个getText()
方法,我真的很困惑。
你知道哪个ZCML文件可能与ATDocument类相关吗?或者我在哪里可以找到关于这个问题的信息?在
我的开始.py文件只执行以下导入操作:
^{pr2}$然后它访问dokument对象并尝试执行.getText()
编辑213-03-26 15:27(GMT):
关于.zcml文件
我收到的站点有3个文件夹:Products(extracted to \Plone 3\Data
)、lib和package includes。在
在lib中有一个python文件夹,包含3个子文件夹:“common”、“abc”和“def”(更改名称以不发布客户端信息)。每个子文件夹都包含配置.zcml文件,其中之一还包括覆盖.zcml文件。在
在文件夹包里有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文件目前没有被复制。我在哪里可以复制这些来进口?在
你开始工作的方式不是好的。 您尝试在没有框架设置的情况下使用API。这是可能的,但是你必须非常了解这个框架(加载持久的sitemanager,…)
你应该添加一个“浏览器视图”并调用它来导出你的内容。在
您可以通过:
您可以在http://developer.plone.org找到关于browserview和plone的文档
抱歉,但如果你需要为普隆发展,你需要阅读一点这一切。在
缺少组件注册,通常是在站点中加载ZCML文件时注册的。在
您希望以运行
bin/instance run yourscript.py
而告终,这将所有繁琐的站点和ZCML加载留给Zope。在一旦可靠地运行了该站点,您就可以在设置本地组件管理器和安全管理器的脚本中访问站点:
将此脚本保存到某个位置,并使用以下命令运行它:
^{pr2}$相关问题 更多 >
编程相关推荐