3

我在这里关注测试:https ://github.com/plone/plone.app.referenceablebehavior/blob/master/plone/app/referenceablebehavior/referenceable.txt

我将plone.app.referenceablebehavior添加到 Plone 4.3,创建了一个类型 TTW 并使其可引用:

在此处输入图像描述

然后我在站点根目录中创建了一个名为“My Referenceable Type Instance”的类型实例,并在调试模式下尝试了以下操作:

>>> from plone.app.referenceablebehavior.referenceable import IReferenceable
>>> IReferenceable.providedBy(app.Plone['my-referenceable-type-instance'])
False

我希望结果是True。这是一个错误,还是我错过了什么?

[0] 我的扩建:

[buildout]
extends = https://raw.github.com/pythonpackages/buildout-plone/master/4.3.x-dev

[plone]
eggs +=
    plone.app.referenceablebehavior
4

1 回答 1

4

在调试会话中,您需要在尝试此操作之前设置本地站点管理器。尝试:

>>> from zope.component.hooks import setSite
>>> setSite(app.Plone)

...在尝试检查 IReferenceable 是否由对象提供之前。这是必要的原因是 Dexterity 使用称为对象规范描述符的东西,它从类型的工厂类型信息中动态查找接口,这是特定于站点的(如果没有首先配置本地站点,您将无法检索特定于站点的配置用于查找)。

于 2013-07-02T15:56:38.967 回答