我通过 Dexterity 在 Plone 4.3 中创建了两种内容类型,并在文件系统上创建了一个 Plone 产品。
类型是
- 供应商
- 物品
项目只能存在于供应商内部,我可以手动创建新项目而无需
如果我在创建供应商时上传 CSV 文件,我希望能够创建一堆项目。任何方式灵巧支持这一点(触发器,自定义视图......)?
您必须在自定义视图中处理它。没有预先存在的代码来处理它。
对于简单的情况,只需使用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], ...)
对于更复杂的操作,您可以使用将 CSV 数据转换为灵巧对象的管道构建一个transmogrifier
管道transmogrify.dexterity
,但这在这里可能有点矫枉过正。