Plone 使用collective.dextertyTextIndexer扩展SearchableText
我正在尝试为我的内容类型扩展SearchableText索引。 通过在模型文件中将多个字段标记为indexer:searchable=“true”,我成功地获得了要包含的多个字段。 但是,我无法从类型的py扩展SearchableText,如下所示:Plone 使用collective.dextertyTextIndexer扩展SearchableText,plone,dexterity,Plone,Dexterity,我正在尝试为我的内容类型扩展SearchableText索引。 通过在模型文件中将多个字段标记为indexer:searchable=“true”,我成功地获得了要包含的多个字段。 但是,我无法从类型的py扩展SearchableText,如下所示: class IMyBehavior(form.Schema): dexteritytextindexer.searchable('description') description = schema.Text(title=u'Pr
class IMyBehavior(form.Schema):
dexteritytextindexer.searchable('description')
description = schema.Text(title=u'Precis')
alsoProvides(IMyBehavior, IFormFieldProvider)
class MySearchableTextExtender(object):
adapts(IMyBehavior)
implements(dexteritytextindexer.IDynamicTextIndexExtender)
def __init__(self, context):
self.context = context
def __call__(self):
"""Extend the searchable text with a custom string"""
return 'some more searchable words'
我得承认,我真的不知道头等舱是怎么开的。我是否必须设置这个类中的可搜索字段才能扩展第二个类中的可搜索文本?
如果我从模型中删除所有indexer:searchable=“true”,那么SearchableText就是空的
第一个类是否同时尝试注册架构?如果是这样的话,如果只是扩展可搜索文本,它应该是什么样子?集合.DextertityTextIndexer提供了两个重要功能:
dexteritytextindexer
使您能够将值
放入Plone的可搜索文本
索引中。通过向表单中添加dexteritytextindexer.searchable(FIELDNAME)
,该字段的值将显示在SearchableText
中。在原型中,通过将searchable=True
添加到字段定义中,您具有相同的功能collective.dexteritytextindexer
还提供了通过注册idynamictdexextender
适配器手动扩展可搜索文本的功能。它使用适配器中的值扩展第1部分中的值
向zcml注册适配器:
最重要的部分是测试实现:
根据您的ftw示例,我添加了一个interfaces.py,其中IMyBehavior(?)的接口为空,但我不确定“import”是什么意思,并且在它上面找不到任何文档。在ftw.simplelayout exmaple中,ISimplelayout接口是一个标记行为(请参见)“\u”下划线是一个消息工厂。在plone中,将其声明为下划线是很常见的。您是否向zcml注册了适配器?它真的进入了适配器(pdb)吗?为什么要添加interfaces.py,您已经有了IMyBehavior
??请发布您的完整代码,如果它不起作用。它现在起作用了,谢谢。最后一个难题是启用行为。默认情况下是否可以启用该行为?