5

器用さのコンテンツ タイプをナビゲーション動作から除外する必要がありますが、exclude_from_navフィールドの既定値は ですTrue。動作plone.app.dexterity.behaviors.exclfromnav.IExcludeFromNavigationでは、デフォルトでFalse.

明らかにIExcludeFromNavigation、デフォルト値を除いてコピーする独自の動作を作成できましたが、再利用に基づいてこれを行う方法があるかどうか疑問に思っていましたIExcludeFromNavigationIExcludeFromNavigationデフォルトにしたい場所を使用する他のコンテンツタイプがありますFalse

Plone 4.1rc3 と Dexterity 1.0 を使用しています

4

2 に答える 2

5

http://plone.org/products/dexterity/documentation/manual/developer-manual/advanced/defaultsおよびhttp://pypi.python.org/pypi/plone.directives.form#value-adaptersを参照してください。ただし、基本的には:

@form.default_value(field=IExcludeFromNavigation['exclude_from_nav'], context=IMyType)
def excludeFromNavDefaultValue(data):
    return True

乾杯、マーティン

于 2011-07-12T12:10:20.583 に答える
3

私はこれをplone.directives.formデコレータを使って動かしています。

これを動作モジュールの 1 つに追加しました。

from plone.directives.form import default_value

@default_value(field = IExcludeFromNavigation['exclude_from_nav'])
def excludeFromNavDefaultValue(data):
    return data.request.URL.endswith('++add++my_item_type')

configure.zcmlには次のものもあります

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

<grok:grok package="." />

彼の答えは私の問題を完全には解決しませんでしたが、大きな手がかりを提供してくれたMartinに感謝します。これは私にはちょっとしたハックのように感じます-よりエレガントなソリューションがいいでしょう.

于 2011-07-12T14:28:41.857 に答える