Zope文件夹操作

文件夹操作包括检查子对象的操作,还有剪切、拷贝、粘贴等:

  • hasObject

    检查文件夹中是否存在某个对象:folder.hasObject(id)

  • objectIds

    返回文件夹中的对象id字符串的列表,可以指定某些类型则只返回该类型:folder.objectIds()

  • objectValues

    返回文件夹中对象的列表,可以指定某些类型则只返回该类型:folder.objectValues()

  • manage_delObjects

    删除文件夹中的一些对象,参数是所要删除的id字符串列表:folder.manage_delObjects(['id'])

  • _setObject

    因为以下划线开头的函数是不会发布的,这个常用在文件系统上的开发中,用于给文件夹中添加对象:folder._setObject('id', someObject)

  • manage_renameObject

    修改文件夹中的子对象的id:folder.renameObject(id, new_id)

  • manage_renameObjects

    这个函数接受两个id的列表作为参数以同时对多个子对象进行改名:folder.renameObjects([id], [new_id])

  • manage_copyObjects

    复制文件夹中的一组对象:cb_copy_data = folder.manage_copyObjects(['my_document'])

  • manage_cutObjects

    剪切文件夹中的一组对象:cb_copy_data = folder.manage_cutObjects(['my_document'])

  • manage_pasteObjects

    剪贴一组对象,它使用manage_copyObjects或manage_cutObjects的返回值作为参数:another_folder.manage_pasteObjects(cb_copy_data)

  • objectItems

    返回文件夹中对象的(id, value)形式的元组的列表。

现在介绍一个剪切、复制和粘贴的实例。下面的脚本,其功能是把刚才创建的my_document文档复制到新文件夹my_folder里:

1
2
3
4
5
6
7
from Products.CMFCore.utils import getToolByName

urltool = getToolByName(context, "portal_url")
portal = urltool.getPortalObject()
cb_copy_data = portal.manage_copyObjects(["my_document"])
folder = getattr(portal, "my_folder")
folder.manage_pasteObjects(cb_copy_data)
作者

Junle

发布于

2016-01-10

更新于

2024-03-22

许可协议

评论