私は Dexterity を介して Plone 4.3 で 2 つのコンテンツ タイプを作成し、ファイル システム上に 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
、ここではおそらくやり過ぎです。