python - 特定文件夹的内容迁移

标签 python plone

我有一个脚本,用于将我的 Plone 实例的图像迁移到自定义类型。其部分代码示例如下所示:

class ImagesToPhotosMigrator(InplaceATItemMigrator):
    src_portal_type = 'Image'
    src_meta_type = 'ATBlob'
    dst_portal_type = 'Photo'
    dst_meta_type = 'Photo'

    def last_migrate_reindex(self):
        self.new.reindexObject(idxs=['object_provides', 'portal_type',
            'Type', 'UID'])

    fields_map = {
    }

def getImagesToPhotosMigrationWalker(self):
    return getMigrationWalker(self, migrator=ImagesToPhotosMigrator)

def migrateImages(self):
    walker = getImagesToPhotosMigrationWalker(self)
    walker.go()
    return walker.getOutput()

脚本有效,但我希望迁移仅发生在特定文件夹中,例如 /my-folder,在脚本中添加什么?

最佳答案

您应该指定您引用 Products.contentmigration ,因为它并不隐含在“内容迁移”一词中(最近迁移的种类比代码行还要多)。无论如何,这是您的解决方案(CustomQueryWalker 是关键):

from Products.contentmigration.walker import CustomQueryWalker

def getImagesToPhotosMigrationWalker(self, query):
    return CustomQueryWalker(self, ImagesToPhotosMigrator, query)

def migrateImages(self):
    walker = getImagesToPhotosMigrationWalker(self, {'path' : '/youfolder'})
    walker.go()
    return walker.getOutput()

请注意,查询参数是目录查询,因此您可以指定路径、portal_type 或目录中的任何索引。

关于python - 特定文件夹的内容迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176065/

相关文章:

python - Twisted 服务器,从 Twitter 流 api 消费并同时提供静态内容

python - 如何在 Django 模型中创建和保存文件

Solr reindex 在运行 Collective Solr for Plone 时过早停止

css - 从特定容器中排除主题

python - numpy 中结构化数组的形状

Python:将 CSV 文件从一个 RPi 复制到另一个 RPi

python - 格式化 tkinter 文本框

plone - 使用 plone.app.discussion 也可以在FolderishType中启用评论

python - Plone 插件,命令行程序的 Web 界面开发

plone - ConnectionStateError 的可能原因是什么?