1
我用archetypes.schemaextender延長ATEvent的模式,以添加的ImageField。添加「標籤」的方法來ATEvent
工程。
現在,我想補充的「標籤」的方法對ATEvent爲了使用縮放圖像的「新」的方式。
所以我這樣做: 在文件extender.py:
from Products.CMFCore.permissions import View
from AccessControl import ClassSecurityInfo
from zope.interface import Interface
class IImageExtender(Interface):
""" """
def tag():
""" """
class ImageExtender(object):
""" """
implements(IImageExtender)
security = ClassSecurityInfo()
def __init__(self, context):
self.context = context
security.declareProtected(View, 'tag')
def tag(self, **kwargs):
"""Generate image tag using the api of the ImageField
"""
return self.getField('image').tag(self, **kwargs)
後,在configure.zcml中:
<adapter for="Products.ATContentTypes.interface.IATEvent"
provides=".extender.IImageExtender"
factory=".extender.ImageExtender" />
但它不工作。 我得到這些錯誤:
Module zope.tales.pythonexpr, line 59, in __call__
- __traceback_info__: (path('nocall:item_object/tag')(scale=size, css_class='tileImage'))
Module <string>, line 1, in <module>
Module zope.tales.pythonexpr, line 77, in __call__
Module zope.tales.expressions, line 217, in __call__
Module zope.tales.expressions, line 194, in _eval
Module zope.tales.expressions, line 217, in __call__
Module zope.tales.expressions, line 194, in _eval
Module zope.tales.expressions, line 124, in _eval
Module zope.pagetemplate.engine, line 66, in __call__
Module zope.traversing.adapters, line 136, in traversePathElement
- __traceback_info__: (<ATEvent at /Plone/manifestations/visites-conferences/conf>, 'tag')
Module zope.traversing.adapters, line 50, in traverse
- __traceback_info__: (<ATEvent at /Plone/manifestations/visites-conferences/conf>, 'tag', [])
LocationError: (<ATEvent at /Plone/manifestations/visites-conferences/conf>, 'tag')
任何線索? 謝謝。