我们想在单个脚本操作中将对象移动并重命名为Plone中的其他文件夹。
是否有一个API的调用可以完成此任务?
或者:是否应该调用cut + paste + manage_renameObjects()或者是否有更简单的调用链?
答案 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