
一位同事提出了一个可行的解决方案:
import transactiondef redirect_to_trial(trans, obj=None, parent=None): if obj.id not in parent: request = getattr(obj, 'REQUEST', None) if request: trial_url = obj.__parent__.__parent__.absolute_url() request.response.redirect(trial_url)@grok.subscribe(ISite, IObjectRemovedEvent)def on_site_delete(obj, event): kwargs = dict( obj = obj, parent = event.oldParent, ) transaction.get().addAfterCommitHook(redirect_to_trial, kws=kwargs)
在执行重定向之前,此 *** 作将在提交之后进行检查以确保实际上已删除了该对象。
不过,对这是否是一种合适的方法进行一些确认将不胜感激。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)