Skip to main content
 首页 » 编程设计

python之自定义 Plone Dexterity 工厂以创建子内容

2025年05月04日15yjmyzz

我认为可以创建一个调用默认工厂的自定义 Dexterity 工厂,然后将一些子内容(在我的例子中是基于原型(prototype)的)添加到创建的“父”Dexterity 内容。

我在创建和注册自定义工厂时没有问题。

但是,无论我使用什么方法(创建 AT 子内容),在自定义工厂内尝试创建子内容都会失败。

我已经尝试了从 plone.api 到 invokeFactory 到 AT 内容类的直接实例化的所有方法。

在大多数情况下,回溯显示底层 Plone/CMF 代码尝试使用 getToolByName 获取 portal_types 工具但失败了;类似地,当尝试直接实例化 AT 类时,manage_afterAdd 然后尝试访问 reference_catalog,但失败了。

有什么办法可以实现吗?

请您参考如下方法:

一种不同的方法可以简单地为 IObjectAddedEvent 添加事件处理程序,并使用通用 API 添加那里您的子内容。