z3c.form注册的转换器如下所示:
<adapter
factory=".converter.DatetimeDataConverter"
/>是否可以使用overrides.zcml在Plone中覆盖此转换器?overrides.zcml需要提供哪种类型的输入才能覆盖它?是否应该从.py代码中复制匹配定义的接口:
class DatetimeDataConverter(CalendarDataConverter):
"""A special data converter for datetimes."""
zope.component.adapts(
zope.schema.interfaces.IDatetime, interfaces.IWidget)是否有任何其他非猴子修补方法来覆盖z3c.converters?
发布于 2012-11-29 22:50:01
我只需为更具体的接口注册新的转换器:
<adapter
factory=".myconverter.MyDatetimeDataConverter"
for="zope.schema.interfaces.IDatetime
z3c.form.interfaces.ITextWidget"
/>我以ITextWidget为例,在您希望使用自定义转换器的小部件中注册它。
覆盖将替换具有相同注册的适配器。就像常规ZCML文件中的<adapter />注册一样,它将获取它(多)适配的接口以及它从工厂对象提供的接口(如果需要的话),所以如果您在自己的转换器上使用.adapts(),那么您就不需要在<adapter />注册中重复该信息。
https://stackoverflow.com/questions/13624637
复制相似问题