防止删除Plone中的文件夹(类型),除非正在删除父文件夹
我想防止在Plone中删除folderish类型的实例,删除父文件夹时除外。我有一种预感,事件处理程序可以阻止删除(在绑定到标记接口的防止删除Plone中的文件夹(类型),除非正在删除父文件夹,plone,zope,Plone,Zope,我想防止在Plone中删除folderish类型的实例,删除父文件夹时除外。我有一种预感,事件处理程序可以阻止删除(在绑定到标记接口的IObjectRemovedEvent处理程序中引发异常),但实现此规则的异常似乎更难确定:我希望在删除项目的父文件夹时允许删除该项目 我最初的预感是,我可以遍历\uuuuuu parent\uuuuuu指针,检查是否在正在删除的父级(或某个远程间接容器)上设置了属性,但我不确定在尝试删除包含的子级(否则不允许删除)之前删除父级时如何设置此属性. 所以现在,我在
IObjectRemovedEvent
处理程序中引发异常),但实现此规则的异常似乎更难确定:我希望在删除项目的父文件夹时允许删除该项目
我最初的预感是,我可以遍历\uuuuuu parent\uuuuuu
指针,检查是否在正在删除的父级(或某个远程间接容器)上设置了属性,但我不确定在尝试删除包含的子级(否则不允许删除)之前删除父级时如何设置此属性. 所以现在,我在质疑我是否以正确的方式处理这个问题?我是否误解了在Plone中删除对象的问题约束?我应该看看plone.app.linkintegrity源代码来借用技巧吗
我的使用案例:“项目”文件夹中的“设置文件夹”——本质上,设置文件夹不应该被删除,除非项目文件夹本身被删除。我想我要求的是一个非常具体的包容关系的引用完整性
您如何防止删除某个对象,除非该对象是由于其父对象被删除而直接被删除的?经过一段时间后,我终于找到了解决此一般问题的方法(但在不同的上下文中):
参见示例:您可以重新设计您的场景,以使“设置”成为“项目”的模式。不是这样吗?