Plone 如何为z3cform创建新的contenttreewidget

Plone 如何为z3cform创建新的contenttreewidget,plone,z3c.form,Plone,Z3c.form,我试图覆盖用于relateditems的小部件(Dextrity so z3cform),它是来自plone.formwidget.contenttree.widget import MultiContentTreeWidget的 我遇到的问题是,我不理解为什么我的示例试图找到IDataConverter的组件,其中没有用于contenttree小部件的IDataConverter及其父组件 代码是: #zope 从zope导入接口 导入z3c.form.interfaces 导入z3c.for

我试图覆盖用于relateditems的小部件(Dextrity so z3cform),它是来自plone.formwidget.contenttree.widget import MultiContentTreeWidget的

我遇到的问题是,我不理解为什么我的示例试图找到IDataConverter的组件,其中没有用于contenttree小部件的IDataConverter及其父组件

代码是:

#zope
从zope导入接口
导入z3c.form.interfaces
导入z3c.form.widget
从Products.Five.browser.pagetemplatefile导入视图pagetemplatefile
#普隆
从plone.formwidget.contenttree.interfaces导入IContentTreeWidget
从plone.formwidget.contenttree.widget导入MultiContentTreeWidget
从plone.app.relationfield.widget导入RelationListDataManager
#内部的
类DatalistManager(RelationListDataManager):
通过
类IMultiDatalistWidget(IContentTreeWidget):
“”“z3c.form的数据列表小部件标记”“”
类MultiDatalistWidget(MultiContentTreeWidget):
interface.implementsOnly(IMultiDatalistWidget)
input\u template=ViewPageTemplateFile('templates/datalist\u input.pt'))
klass=u'html5-datalist-multiselection-widget'
js_template=“”\
(函数($){
$().ready(函数()){
log('autocomplete ready?');
});
})(jQuery);
"""
def js_额外(自身):
返回“”
@实现者(z3c.form.interfaces.IFieldWidget)
def MultiDatalistFieldWidget(字段,请求):
“”“DatalistWidget的IFieldWidget工厂。”“”
返回z3c.form.widget.FieldWidget(字段,MultiDatalistWidget(请求))
以及zcml:



我曾经用这个类重写小部件,以便为webmailer启用上载功能。我认为您希望覆盖json的生成,以使jQuery兼容。非常感谢你的工作

这是我的班级:

希望能有帮助

Traceback (innermost last):
  Module ZPublisher.Publish, line 126, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 46, in call_object
  Module plone.z3cform.layout, line 66, in __call__
  Module plone.z3cform.layout, line 50, in update
  Module z3c.form.form, line 208, in update
  Module plone.z3cform.patch, line 21, in BaseForm_update
  Module z3c.form.form, line 150, in update
  Module z3c.form.form, line 134, in updateWidgets
  Module z3c.form.field, line 277, in update
  Module z3c.formwidget.query.widget, line 183, in update
  Module z3c.formwidget.query.widget, line 230, in updateQueryWidget
  Module z3c.form.browser.checkbox, line 45, in update
  Module z3c.form.browser.widget, line 170, in update
  Module z3c.form.widget, line 221, in update
  Module z3c.form.widget, line 130, in update
TypeError: ('Could not adapt', <MultiDatalistWidget 'form.widgets.relatedItems'>, <InterfaceClass z3c.form.interfaces.IDataConverter>)