跳转到主要内容

使用ZCatalogs作为导出源

项目描述

在ZCatalogs中以表格形式包含的数据通常是站点管理员经常想要导出为其他格式(如CSV)的数据。此软件包提供了将目录数据导出为各种格式的视图。

目前,仅支持将整个目录以及所有元数据/大脑/列以CSV格式导出。我计划添加对提交任意索引查询和控制导出的元数据/大脑/列的支持。

从具有一些索引、元数据/大脑/列和少量已索引对象的目录开始。

>>> self.folder.manage_addProduct['ZCatalog'].manage_addZCatalog(
...     'catalog', 'Catalog')
>>> catalog = self.folder.catalog
>>> catalog.addIndex('id', 'FieldIndex')
>>> catalog.addIndex('title', 'FieldIndex')
>>> catalog.indexes()
['id', 'title']
>>> catalog.addColumn('meta_type')
>>> catalog.addColumn('id')
>>> self.folder.manage_addProduct['OFSP'].manage_addDTMLDocument(
...     'foo_doc', 'Foo Document')
''
>>> catalog.catalog_object(self.folder.foo_doc)
>>> self.folder.manage_addProduct['OFSP'].manage_addDTMLDocument(
...     'bar_doc', 'Bar Document')
''
>>> catalog.catalog_object(self.folder.bar_doc)
>>> [(brain.meta_type, brain.id) for brain in catalog()]
[('DTML Document', 'foo_doc'), ('DTML Document', 'bar_doc')]

在浏览器中打开导出视图,指定导出格式为CSV。

>>> from Products.Five.testbrowser import Browser
>>> from Testing import ZopeTestCase
>>> self.setRoles(['Manager'])
>>> browser = Browser()
>>> browser.addHeader(
...     'Authorization', 'Basic %s:%s' %
...     (ZopeTestCase.user_name, ZopeTestCase.user_password))
>>> browser.handleErrors = False
>>> browser.open(catalog.absolute_url()+
...              '/export?Content-Type=text/csv')
>>> browser.isHtml
False
>>> print browser.headers
Status: 200 OK...
Content-Disposition: attachment...
Content-Type: text/csv...
>>> print browser.contents

XXX测试浏览器无法处理response.write()的使用。我已验证在真实浏览器中此功能正常

DTML Document,foo_doc
DTML Document,bar_doc

变更日志

0.1 - 2008-11-14

  • 初始发布

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

collective.catalogexport-0.1.tar.gz (4.9 kB 查看哈希值)

上传时间

由以下支持