Plone 使用quintagroup.transmogrifier通用设置导入设置默认页面不会';我不能灵巧地工作

Plone 使用quintagroup.transmogrifier通用设置导入设置默认页面不会';我不能灵巧地工作,plone,dexterity,transmogrifier,Plone,Dexterity,Transmogrifier,我们正在使用quintagroup.transmogrifier内容导入配置文件为自动化测试加载内容(非常有用)。设置默认页面似乎不起作用 文档建议quintagroup.transmogrifier支持设置默认页面,但不支持是否为常规设置导入步骤设置默认页面。我最终发现,您需要将properties.xml文件添加到folderish项的文件夹中,如下所示: 指数 其中,索引由默认页面的id替换,也可以在您需要的import.cfg中替换 [transmogrifier] pipeline

我们正在使用quintagroup.transmogrifier内容导入配置文件为自动化测试加载内容(非常有用)。设置默认页面似乎不起作用

文档建议quintagroup.transmogrifier支持设置默认页面,但不支持是否为常规设置导入步骤设置默认页面。我最终发现,您需要将properties.xml文件添加到folderish项的文件夹中,如下所示:


指数
其中,索引由默认页面的id替换,也可以在您需要的import.cfg中替换

[transmogrifier]
pipeline =
    reader
    …
    propertiesimporter

[reader]
…
.properties.xml = propertymanager

[propertiesimporter]
blueprint = quintagroup.transmogrifier.propertiesimporter
然而,这不起作用。我们正在运行Plone 4.1rc3+灵巧1.0,可能它与灵巧不兼容。我已经在quintagroup.transmogrifier.propertymanager.PropertiesImporterSection中找到了它正在下降的代码位:

path=item[pathkey]
obj=self.context.unrestrictedTraverse(路径,无)

这里path是一个unicode字符串,unrestrictedTraverse返回None。如果使用字节字符串,则返回正确的对象。这是与灵巧性不兼容还是我做错了什么?

这是一个错误,您需要向quintagroup.transmogrifier软件包的作者报告。路径必须始终是ASCII ByTestRing,而不是Unicode对象。collection.transmogrifier(quintagroup.transmogrifier使用的底层引擎)中的所有部分都将路径编码为ASCII

下面是一段代码片段,例如:

type,path=item[typekey],item[pathkey]
fti=self.ttool.getTypeInfo(类型)
如果fti为无:#不是现有类型
收益项目;持续
path=path.encode('ASCII')
elems=path.strip('/').rsplit('/',1)
容器,id=(len(elems)==1和(“”,elems[0])或elems)
context=self.context.unrestrictedTraverse(容器,无)

将其报告给,以便作者可以为您修复。

好的,谢谢您的建议。我提出了一个问题,目前正在测试设置中设置默认页面methods@martijn-pieters,还有另一个名为“plone.app.transmogrifier.urlnormalizer”的蓝图,可以添加到管道中以解决ascii问题。如果路径包含文件夹,我确实会遇到问题。@bigeflight:实际上,在这种情况下,使用URL规范化器部分将有助于清理路径。但这仍然是一项工作;quintagroup代码不应假定路径为普通字符串。