Plone Dexterity Behaviors 可引用的行为不可引用?

标签 plone dexterity

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

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

enter image description here

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

>>> 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

最佳答案

在调试 session 中,您需要在尝试之前设置本地站点管理器。尝试:

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

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

关于Plone Dexterity Behaviors 可引用的行为不可引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425668/

相关文章:

plone - 在 Plone 中自定义敏捷编辑表单模板?

plone - 更改 Plone 事件表单中的输入法?

plone - 我如何在 Plone 4 中没有 zope 2 皮肤层的情况下使用 zope 3/ztk 层?

python - 我如何在 Plone 4 开发的产品中运行测试?

plone - 创建内容类型后如何执行操作?

通过模型 xml 文件 Plone 灵活性多选字段

plone - 如何创建一个完全没有索引的灵巧内容类型?

plone - 启用文件夹作为默认内容项 View 之一

plone - 复制后重命名 Dexterity 对象 (id)

python - 如何覆盖 z3c.form 按钮操作处理程序?