1

動作が有効になっている場合に使用できるビューを作成しました。

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 を有効にしてから my-view を開こうとすると、ビューが利用できません。

動作を有効/無効にした後に plone インスタンスを再起動すると、期待どおりに動作することに気付きました。動作 TTW を有効にした後、ビューを再登録する必要があると思います。

今の問題は、どうすればそれを行うことができるかということです。

4

1 に答える 1

2

ビューを再登録することはできません。

登録は、momemt Zopeアプリケーションサーバーが起動し、Pythonモジュールがインポートされると、Zopeコンポーネントレジストリに書き込まれます。これは1回限りの操作であり、データではなくコードに関連しています。

問題のように、プロセスの中で何か他のものが崩壊しているように聞こえます。たぶん、コンテンツタイプは実際には質問の動作マーカーインターフェイスを提供していません。これは、何かがプロセスを妨害していることが原因である可能性があります。起動時にコードが読み取られないか、plone.behaviorsに内部バグがあります。マーカーインターフェイスが使用可能かどうかをテストする方法については、optiludeのコメントを参照してください。

于 2012-09-03T06:36:01.603 に答える