Я пытаюсь открыть пользовательскую форму редактирования, которая будет отображать только одно поле из формы с 12 полями:
class EditForm(dexterity.EditForm):
grok.name('editCustom')
grok.context(IInfo)
def updateWidgets(self):
super(EditForm, self).updateWidgets()
self.widgets['alps'].mode = 'hidden'
self.widgets['operationStatus'].mode = 'hidden'
# etc.
все работает нормально, пока я не доберусь до поля, которое является выбором списка MultiField:
self.widgets['siteContact'].mode = 'hidden'
(это запись в форме.Схема):
siteContact = schema.List(
title=_(u"Site Contact"),
description =_(u"Select Site Contacts"),
value_type=schema.Choice(vocabulary=("test.siteContact")),
required=False,
)
но когда я пытаюсь получить доступ к пользовательской EditForm, я получаю:
Module z3c.form.widget, line 140, in render
Module zope.component._api, line 109, in getMultiAdapter
ComponentLookupError: ((<Container at /test/first>, <HTTPRequest, URL=http://localhost:8080/test/first/@@editCustom>, <Products.Five.metaclass.EditForm object at 0x08F9D9F0>, <zope.schema._field.List object at 0x084844B0>, <OrderedSelectWidget 'form.widgets.siteContact'>), <InterfaceClass zope.pagetemplate.interfaces.IPageTemplate>, 'hidden')