我认为可以创建一个调用默认工厂的自定义 Dexterity 工厂,然后将一些子内容(在我的例子中是基于原型(prototype)的)添加到创建的“父”Dexterity 内容。
我在创建和注册自定义工厂时没有问题。
但是,无论我使用什么方法(创建 AT 子内容),在自定义工厂内尝试创建子内容都会失败。
我已经尝试了从 plone.api 到 invokeFactory 到 AT 内容类的直接实例化的所有方法。
在大多数情况下,回溯显示底层 Plone/CMF 代码尝试使用 getToolByName 获取 portal_types 工具但失败了;类似地,当尝试直接实例化 AT 类时,manage_afterAdd 然后尝试访问 reference_catalog,但失败了。
有什么办法可以实现吗?
请您参考如下方法:
一种不同的方法可以简单地为 IObjectAddedEvent 添加事件处理程序,并使用通用 API 添加那里您的子内容。
