1

非フォルダー形式のコンテンツ タイプがあり、このコンテンツ タイプをフォルダー形式に変換したいと考えています。私のコンテンツ タイプ内には 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,)),

すべてのフィールド定義は、古いコンテンツ タイプと新しいコンテンツ タイプの両方で同じです。

ファイルがコピーされない原因となったコードが不足していますか?

4

0 に答える 0