1
我需要在以下情况下一些帮助:我需要为了实现自定义事件/订户能够得到一个对象的上下文中开始和它的版本结束了,因为我需要在两个上下文中比较对象的某些字段的状态。
有没有办法做到这一点?是否有可能在所有编辑过程中都处于活动/执行状态的处理程序(它正在开始并整合更改)?也许使用线程?
在此先感谢您的帮助!
我需要在以下情况下一些帮助:我需要为了实现自定义事件/订户能够得到一个对象的上下文中开始和它的版本结束了,因为我需要在两个上下文中比较对象的某些字段的状态。
有没有办法做到这一点?是否有可能在所有编辑过程中都处于活动/执行状态的处理程序(它正在开始并整合更改)?也许使用线程?
在此先感谢您的帮助!
考虑重写你的编辑形式,以得到你想要的,而不是试图在这里使用的用户是什么 - 这可能看起来像:
from plone.dexterity.browser.edit import DefaultEditForm as BaseForm
class ComparisonEditForm(BaseForm):
def update(self, *args, **kwargs):
existing_value = self.context.mykey
BaseForm.update(self, *args, **kwargs)
updated_value = self.context.mykey
if existing_value != updated_value:
pass # DO SOMETHING HERE
然后在ZCML什么的注册覆盖。 YMMV,我没有尝试过,但我认为总体思路应该起作用。
感谢您的快速回答,我会尝试并在此发布反馈,以便可能帮助其他人。 – maccinza