我们想在单个脚本操作中将对象移动和重命名到 Plone 中的不同文件夹。
是否有一个 API'sh 调用可以完成此操作?
或者:应该调用 cut + paste + manage_renameObjects() 还是有更简单的调用链?
我们想在单个脚本操作中将对象移动和重命名到 Plone 中的不同文件夹。
是否有一个 API'sh 调用可以完成此操作?
或者:应该调用 cut + paste + manage_renameObjects() 还是有更简单的调用链?
你应该剪切 + 粘贴 + 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)
Martijns 的回答当时是正确的,但现在 Plone 有一个 API 提供了所需的方法:
http://docs.plone.org/external/plone.api/docs/content.html#move-content