将内容项目移动+重命名为Plone中的其他文件夹

时间:2012-07-20 07:08:13

标签: plone

我们想在单个脚本操作中将对象移动并重命名为Plone中的其他文件夹。

  • 是否有一个API的调用可以完成此任务?

  • 或者:是否应该调用cut + paste + manage_renameObjects()或者是否有更简单的调用链?

2 个答案:

答案 0 :(得分:3)

你应该剪切+粘贴+ manage_renameObjects()。这是您唯一可用的API。 : - )

我经常使用辅助方法来完成工作:

from Acquisition import aq_parent, aq_inner

def move(id_=None, ob=None, parent=None, dest=None, newid=None):
    # Either provide id and parent, or ob.
    if id_ is None:
        id_ = ob.getId()
    if parent is None:
        parent =  aq_parent(aq_inner(ob))
    clipboard = parent.manage_cutObjects([id_])
    result = dest.manage_pasteObjects(clipboard)
    if newid is not None:
        dest.manage_renameObject(result['new_id'], newid)

答案 1 :(得分:2)

当时Martijns的答案是正确的,但现在Plone有一个提供所需方法的API:

http://docs.plone.org/external/plone.api/docs/content.html#move-content