plone:如何在启用/禁用标记行为后重新注册视图

时间:2012-08-31 12:55:37

标签: plone dexterity

我创建了一个在启用行为时应该可用的视图。

from behaviors import IMyBehavior

class View(grok.View):
    grok.context(IMyBehavior)
    grok.require('zope2.View')
    grok.name('my-view')

我还将行为添加到configure.zcml

  <include package="plone.behavior" file="meta.zcml" />

  <plone:behavior
        title="My View Behavior"
        description="foobar"
        provides=".behaviors.IMyBehavior"
        />

http://plone.org/products/dexterity/documentation/manual/behaviors/referencemanual-all-pages阅读主要标记行为部分后,我已经足够了。但显然它不是。 当我启用MyBehavior TTW,然后尝试打开我的视图时,视图不可用。

我意识到如果在启用/禁用行为后重启我的plone实例,它会按预期工作。我想在启用TTW行为后,必须重新注册视图。

现在的问题是我该怎么做?

1 个答案:

答案 0 :(得分:2)

视图无法重新注册。

在momemt Zope应用程序服务器启动并导入Python模块时,注册将写入Zope组件注册表。这是一次性操作,与您的代码有关,而与您的数据无关。

更像这个问题听起来其他事情在这个过程中崩溃了。也许内容类型实际上不提供问题中的行为标记界面。这可能是因为某些事情干扰了这个过程:你的代码在启动时没有读取,或者plone.behaviors中存在内部错误。请参阅optilude的评论如何测试标记接口是否可用。