2

単一のスクリプト操作で、オブジェクトを Plone の別のフォルダに移動して名前を変更したいと考えています。

  • これを達成する単一の API の呼び出しはありますか?

  • 別の方法: 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 に答える