내가 작업중인 프로젝트는 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을 제공 할 것이다 : http://davidjb.com/blog/2010/04/plone-and-dexterity-working-with-computed-fields
:이 방법은이 블로그 게시물에 제시된 것과 매우 유사하다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
을
불행히도이 메서드는 plone.app.dexterity 베타 후에 작동을 멈추었으므로 이제 내 콘텐츠 항목의 이름이 올바르게 지정되지 않았습니다.
매우 특정한 명명 사용 사례에 대한 민첩성의 INameFromTitle 동작을 확장하는 방법을 알고있는 사람이 있습니까?
귀하의 도움에 감사드립니다.