Plone / Dexterity容器 - 如果容器类型中有内容,如何防止删除容器类型?

时间:2016-09-01 11:54:38

标签: plone dexterity

我有一个容器,如果有内容,我想阻止它被删除。就像他们在行动中点击删除并点击确认一样,可能会出现状态消息或异常消息(ala Insufficient Priviliges)。

我想可能会使用像IObjectWillBeRemovedEvent和IObjectRemovedEvent这样的事件订阅者,如果容器中的内容有效,则会引发异常消息,但它会继续并删除容器而不显示任何错误消息。

@grok.subscribe(IMyContainerType,IObjectRemovedEvent (or IObjectWillBeRemoved))
def timesheetDeletion(obj,event):
    if len(obj.getFolderContents()) > 0:
        raise LinkIntegrityNotificationException('There are contents in this container.  To maintain integrity of aggregation, please delete contents first')

我不确定这是否是正确的例外情况,但我一直在讨论与防止删除对象相关的主题和问题。

我无法帮助,但觉得必须有一种更简单的方法来做到这一点,也许不需要事件,但我不知道该怎么做。

0 个答案:

没有答案