我有一个容器,如果有内容,我想阻止它被删除。就像他们在行动中点击删除并点击确认一样,可能会出现状态消息或异常消息(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')
我不确定这是否是正确的例外情况,但我一直在讨论与防止删除对象相关的主题和问题。
我无法帮助,但觉得必须有一种更简单的方法来做到这一点,也许不需要事件,但我不知道该怎么做。