Simone Orsi 给了我一个解决方案:z3c.unconfigure。
本产品允许禁用 zcml 配置。
为了使用它,我在我的扩展 Poi 产品上执行了这个步骤:
- 在 setup.py 中添加了“z3c.unconfigure”作为 install_requires
- 使用 update_tracker_watchers 的新定义创建 event.py
- 在 overrides.zcml 添加此行以取消配置 Products.Poi.events.update_tracker_watchers 并注册我的新事件
<include package="z3c.unconfigure" file="meta.zcml" />
<unconfigure>
<subscriber
for="Products.Poi.interfaces.ITracker
Products.Archetypes.interfaces.IObjectEditedEvent"
handler="Products.Poi.events.update_tracker_watchers"
/>
</unconfigure>
<subscriber
for="Products.Poi.interfaces.ITracker
Products.Archetypes.interfaces.IObjectEditedEvent"
handler=".events.update_tracker_watchers"
/>