単一のスクリプト操作で、オブジェクトを Plone の別のフォルダに移動して名前を変更したいと考えています。
これを達成する単一の API の呼び出しはありますか?
別の方法: cut + paste + manage_renameObjects() を呼び出す必要がありますか、それともより単純な一連の呼び出しがありますか?
単一のスクリプト操作で、オブジェクトを Plone の別のフォルダに移動して名前を変更したいと考えています。
これを達成する単一の API の呼び出しはありますか?
別の方法: 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