我创建了一个在启用行为时应该可用的视图。
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行为后,必须重新注册视图。
现在的问题是我该怎么做?
答案 0 :(得分:2)
视图无法重新注册。
在momemt Zope应用程序服务器启动并导入Python模块时,注册将写入Zope组件注册表。这是一次性操作,与您的代码有关,而与您的数据无关。
更像这个问题听起来其他事情在这个过程中崩溃了。也许内容类型实际上不提供问题中的行为标记界面。这可能是因为某些事情干扰了这个过程:你的代码在启动时没有读取,或者plone.behaviors中存在内部错误。请参阅optilude的评论如何测试标记接口是否可用。