非フォルダー形式のコンテンツ タイプがあり、このコンテンツ タイプをフォルダー形式に変換したいと考えています。私のコンテンツ タイプ内には multifilefield があります。このリンクhttp://developer.plone.org/content/archetypes/converting-content-types.htmlを読み、あるコンテンツ タイプを別のコンテンツ タイプに変換しています。ただし、ブラウザ ビューを使用して実行すると、新しいコンテンツ タイプが作成され、multifilefield で処理されるアップロードされたファイルを除いて古いコンテンツの値もコピーされ、それらは空です。
ブラウザビュー内の私のコードは次のとおりです。
更新しました:
def migrateaction(self):
items=self.context.listFolderContents(contentFilter={"portal_type": 'myoldcontent'})
for item in items:
id = "%s-new" % item.getId()
service = self.context.invokeFactory(
'mynewcontent',
id,
rp_category=item.getRp_category(),
familyname=item.getFamilyname(),
firstname=item.getFirstname(),
file=item.getField('file').getRaw(item))
return 'Successfully migrated.'
multifilefield の私のフィールド定義:
MultiFileField('file',
primary=True,
languageIndependent=True,
widget = MultiFileWidget(
label= "File Uploads",
show_content_type = False,)),
すべてのフィールド定義は、古いコンテンツ タイプと新しいコンテンツ タイプの両方で同じです。
ファイルがコピーされない原因となったコードが不足していますか?