我正在使用的項目使用了Plone的超棒的敏捷插件。我的一些自定義內容類型具有必須計算的非常具體的名稱。我原本之前完成此操作的方法是通過增加plone.app.content.interfaces.INameFromTitle作爲對象的通用設置條目的行爲,按照說明書的指示:有沒有辦法擴展Plone靈巧的INameFromTitle行爲?
<?xml version="1.0"?>
<object name="avrc.aeh.cycle" meta_type="Dexterity FTI">
...
<property name="schema">myproject.mytype.IMyType</property>
<property name="klass">plone.dexterity.content.Item</property>
...
<property name="behaviors">
<element value="plone.app.content.interfaces.INameFromTitle" />
</property>
...
</object>
然後我創建了一個適配器將提供INameFromTitle:
from five import grok
from zope.interface import Interface
import zope.schema
from plone.app.content.interfaces import INameFromTitle
class IMyType(Interface):
foo = zope.schema.TextLine(
title=u'Foo'
)
class NameForMyType(grok.Adapter):
grok.context(IMyType)
grok.provides(INameFromTitle)
@property
def title(self):
return u'Custom Title %s' % self.context.foo
這種方法是非常相似的是,在這篇博客文章建議:
http://davidjb.com/blog/2010/04/plone-and-dexterity-working-with-computed-fields
不幸的是,這種方法在plone.app.dexterity測試版後停止工作,現在我的內容項目沒有正確指定其名稱。
有人會碰巧知道如何爲非常特定的命名用例擴展敏捷的INameFromTitle行爲嗎?
非常感謝您的幫助,謝謝!