【问题标题】:Plone 4 Events and SubscribersPlone 4 事件和订阅者
【发布时间】:2011-12-02 12:10:57
【问题描述】:


在以下情况下我需要一些帮助:我需要实现一个自定义事件/订阅者,以便能够在其版本的开头和结尾获取对象的上下文,因为我需要比较两个上下文中对象的某些字段的状态。

有什么办法吗?是否有可能在所有编辑过程中都有一个实时/执行的处理程序(它的开始和更改的合并)?也许使用线程?

提前感谢您的帮助!

【问题讨论】:

    标签: events event-handling plone subscriber


    【解决方案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,我没有尝试过,但我认为一般的想法应该可行。

    【讨论】:

    • 感谢您的快速回答,我会尝试并在此处发布反馈,以便可能帮助其他人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多