Plone Dexterity Behaviors referenceable行为不可参考?

时间:2013-07-02 12:28:49

标签: plone dexterity

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

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

enter image description here

然后我在站点根目录中创建了一个名为“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

1 个答案:

答案 0 :(得分:4)

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

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

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