В проекте, над которым я работаю, используется потрясающий плагин Dexterity от Plone. У пары моих настраиваемых типов контента есть очень конкретные имена, которые необходимо вычислить. Первоначально я делал это раньше, добавляя plone.app.content.interfaces.INameFromTitle как поведение в общей записи настройки объекта, в соответствии с инструкциями руководства:
Затем я создал адаптер, который будет предоставлять 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, и теперь мои элементы контента перестают работать. им не присвоены должным образом имена.
Может ли кто-нибудь узнать, как расширить поведение Dexterity INameFromTitle для очень специфических сценариев использования имен?
Ваша помощь очень ценится, спасибо!