Plone 如何在原型中显示词汇标题?

Plone 如何在原型中显示词汇标题?,plone,zope,archetypes,Plone,Zope,Archetypes,我希望自定义类型显示存储的词汇表的标题。字段定义如下所示: atapi.LinesField( “成员字段”, searchable=1, index='KeywordIndex', 多值=1, storage=atapi.AnnotationStorage(), 词汇表工厂class='member'', widget=自动完成widget( 标签=u(成员名称), description=u(多行,每行一行), actb_超时=-1, actb_扩展_onfocus=0, actb_过滤器_

我希望自定义类型显示存储的词汇表的标题。字段定义如下所示:

atapi.LinesField(
“成员字段”,
searchable=1,
index='KeywordIndex',
多值=1,
storage=atapi.AnnotationStorage(),
词汇表工厂class='member'',
widget=自动完成widget(
标签=u(成员名称),
description=u(多行,每行一行),
actb_超时=-1,
actb_扩展_onfocus=0,
actb_过滤器_伪=0,
),
强制词汇表=0,
),
词汇表定义如下所示:

类成员名称(对象):
机具(iVocableAryFactory)
定义调用(self,context=None):
项目=(
SimpleTerm(value='john',title=u'john Doe'),
SimpleTerm(value='paul',title=u'paul Smith'),
... ...
)
返回简单目录(项目)
成员名称工厂=成员名称()
相应的页面模板如下所示:


成员名单:
成员名称
示例结果仅显示值,如下所示:
成员列表:paul,john
。如何显示它们的标题,例如:
成员列表:Paul Smith,John Doe

词汇表(采用Zope3样式)只是命名的实用程序,您可以这样检索它们:

从zope.component导入getUtility
从zope.schema.interfaces导入IVocableularyFactory
factory=getUtility(IVocableularyFactory,词汇名称)
词汇=工厂(self.context)
然后你可以得到这个术语的名称如下:

fieldvalue=self.context.getField('myfield').get(self.context)
术语=词汇表.getTerm(fieldvalue)
打印“术语值为%s标记为%s,标题为%s”+(Term.value、Term.token、Term.title)
更多信息

词汇表(Zope3样式)只是命名的实用程序,您可以这样检索它们:

从zope.component导入getUtility
从zope.schema.interfaces导入IVocableularyFactory
factory=getUtility(IVocableularyFactory,词汇名称)
词汇=工厂(self.context)
然后你可以得到这个术语的名称如下:

fieldvalue=self.context.getField('myfield').get(self.context)
术语=词汇表.getTerm(fieldvalue)
打印“术语值为%s标记为%s,标题为%s”+(Term.value、Term.token、Term.title)
更多信息