我们正在使用quintagroup.transmogrifier内容导入配置文件为我们的自动化测试加载内容(非常有用)。设置默认页面似乎不起作用。
文档建议quintagroup.transmogrifier支持设置默认页面,但不支持通用设置导入步骤。我最终发现您需要使用以下内容将properties.xml文件添加到文件夹项目的文件夹中:
<?xml version="1.0" encoding="utf-8"?>
<properties>
<property name="default_page" type="string">
index
</property>
</properties>其中索引被默认页面的id替换,而且在您的import.cfg中也需要
[transmogrifier]
pipeline =
reader
…
propertiesimporter
[reader]
…
.properties.xml = propertymanager
[propertiesimporter]
blueprint = quintagroup.transmogrifier.propertiesimporter然而,这并不起作用。我们正在运行Plone 4.1rc3 + Dexterity 1.0,大概它与Dexterity不兼容。我已经在quintagroup.transmogrifier.propertymanager.PropertiesImporterSection中找到了它正在崩溃的那段代码:
path = item[pathkey]
obj = self.context.unrestrictedTraverse(path, None)这里path是unicode字符串,unrestrictedTraverse返回None。如果您使用字节字符串,那么它将返回正确的对象。这是与Dexterity不兼容,还是我做错了什么?
发布于 2011-06-10 03:38:10
这是一个您需要向quintagroup.transmogrifier包的作者报告的错误。路径必须始终是ASCII字节字符串,而不是Unicode对象。collective.transmogrifier ( quintagroup.transmogrifier使用的底层引擎)中的所有部分都将路径编码为ASCII码。
以下是来自collective.transmogrifier.sections.constructor的代码片段:
type_, path = item[typekey], item[pathkey]
fti = self.ttool.getTypeInfo(type_)
if fti is None: # not an existing type
yield item; continue
path = path.encode('ASCII')
elems = path.strip('/').rsplit('/', 1)
container, id = (len(elems) == 1 and ('', elems[0]) or elems)
context = self.context.unrestrictedTraverse(container, None)将其报告给dedicated issue tracker on Plone.org,以便作者可以为您修复它。
https://stackoverflow.com/questions/6290476
复制相似问题