5

我们要求敏捷内容类型从导航行为中排除,但exclude_from_nav字段的默认值为True. 在行为plone.app.dexterity.behaviors.exclfromnav.IExcludeFromNavigation中,它默认为False.

显然,我可以创建自己的复制IExcludeFromNavigation默认值以外的行为,但我想知道是否有一种基于重用的方法来做到这一点IExcludeFromNavigation。我们有其他内容类型IExcludeFromNavigation在我们希望它默认使用的地方使用False

我们正在使用 Plone 4.1rc3 和 Dexterity 1.0

4

2 回答 2

5

请参阅http://plone.org/products/dexterity/documentation/manual/developer-manual/advanced/defaultshttp://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装饰器的工作。

我已将此添加到我的行为模块之一。

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="." />

感谢马丁的大线索,尽管他的回答并没有完全解决我的问题。这对我来说感觉有点像黑客 - 一个更优雅的解决方案会很好。

于 2011-07-12T14:28:41.857 回答