在父级(plone dexterity)中基于csv文件创建子内容

时间:2013-04-16 13:15:09

标签: plone dexterity

我通过Dexterity在Plone 4.3中创建了两种内容类型,并在文件系统上创建了Plone产品。

类型是

  • 供应商
  • 项目

项目只能存在于供应商内部,我可以手动创建没有

的新项目

如果我在创建供应商时上传CSV文件,我希望能够创建一堆项目。灵巧的任何方式都支持这个(触发器,自定义视图......)?

1 个答案:

答案 0 :(得分:2)

您必须在自定义视图中处理它。没有预先存在的代码来处理它。

对于简单的情况,只需使用csv模块读取上传的文件,并使用行在Supplier容器中创建项目:

from plone.dexterity.utils import createContentInContainer
import csv

reader = csv.reader(uploadedfile)

for row in reader:
    createContentInContainer(supplier, 'your.package.item', title=row[0], ...)

对于更复杂的操作,您可以使用transmogrify.dexterity构建一个transmogrifier管道,将CSV数据转换为灵巧对象,但这可能是一种过度杀伤。