我试图根据这里的建议添加一个自定义目录索引:
我的代码看起来如下(h/t: supton):
from plone.indexer.decorator import indexer
from Products.ATContentTypes.interfaces.event import IATEvent
from Products.ATContentTypes.utils import DT2dt
@indexer(IATEvent)
def event_days(context, **kw):
start = DT2dt(context.getStartDate())
end = DT2dt(context.getEndDate())
delta = end - start
return delta.days使用以下ZCML注册:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:five="http://namespaces.zope.org/five"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup">
<five:registerPackage package="." initialize=".initialize" />
<genericsetup:registerProfile
description="event_days_indexer"
directory="profiles/default"
name="default"
provides="Products.GenericSetup.interfaces.EXTENSION"
title="event_days_indexer"
/>
<adapter name="event_days" factory=".indexers.event_days" />
</configure>一切似乎都很好,但是当我创建一个测试事件并重新索引目录时,索引仍然是空的。我遗漏了什么?
发布于 2012-06-15 05:32:46
如果索引器命中AttributeError,则不考虑将对象作为索引。
在这种情况下,发生这种情况是因为ATContentTypes为startDate和endDate字段指定了自定义访问器。与context.getStartDate()和context.getEndDate()不同,使用context.start()和context.end()
https://stackoverflow.com/questions/11043521
复制相似问题