2

我们想在单个脚本操作中将对象移动和重命名到 Plone 中的不同文件夹。

  • 是否有一个 API'sh 调用可以完成此操作?

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

4

2 回答 2

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)
于 2012-07-22T10:08:23.693 回答
2

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

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

于 2015-02-24T10:54:36.513 回答