[Grok-dev] Dictionary widget

Christian Klinger cklinger at novareto.de
Fri Aug 6 03:25:52 EDT 2010


Hi Sascha,

it seems there is no Widget for the schema.Dict field.

Can you tell us something about the usecase. Maybe it's possible
to use a alternative for that. Or you write your own DictWidget.

Christian


> Dear list,
>
> this field here:
>
> phases = schema.Dict(title = u'Development process phases', key_type = schema.Int(), value_type = schema.TextLine(), required = True)
>
> produces the following traceback:
>
> URL: http://localhost:8000/workforce/%40%40index
> File '/root/.buildout/eggs/Paste-1.7.2-py2.6.egg/paste/evalexception/middleware.py', line 306 in respond
>    app_iter = self.application(environ, detect_start_response)
> File '/root/.buildout/eggs/zope.app.wsgi-3.6.1-py2.6.egg/zope/app/wsgi/__init__.py', line 59 in __call__
>    request = publish(request, handle_errors=handle_errors)
> File '/root/.buildout/eggs/zope.publisher-3.12.3-py2.6.egg/zope/publisher/publish.py', line 134 in publish
>    result = publication.callObject(request, obj)
> File '/root/.buildout/eggs/grok-1.1.1-py2.6.egg/grok/publication.py', line 89 in callObject
>    return super(ZopePublicationSansProxy, self).callObject(request, ob)
> File '/root/.buildout/eggs/zope.app.publication-3.10.2-py2.6.egg/zope/app/publication/zopepublication.py', line 205 in callObject
>    return mapply(ob, request.getPositionalArguments(), request)
> <workforce.app.Index object at 0x27a3210>
> File '/root/.buildout/eggs/zope.publisher-3.12.3-py2.6.egg/zope/publisher/publish.py', line 109 in mapply
>    return debug_call(obj, args)
> File '/root/.buildout/eggs/zope.publisher-3.12.3-py2.6.egg/zope/publisher/publish.py', line 115 in debug_call
>    return obj(*args)
> File '/root/.buildout/eggs/grokcore.formlib-1.5-py2.6.egg/grokcore/formlib/components.py', line 90 in __call__
>    self.update_form()
> File '/root/.buildout/eggs/grokcore.formlib-1.5-py2.6.egg/grokcore/formlib/components.py', line 62 in update_form
>    super(GrokForm, self).update()
> File '/root/.buildout/eggs/zope.formlib-4.0-py2.6.egg/zope/formlib/form.py', line 746 in update
>    self.setUpWidgets()
> File '/root/.buildout/eggs/zope.formlib-4.0-py2.6.egg/zope/formlib/form.py', line 821 in setUpWidgets
>    adapters=self.adapters, ignore_request=ignore_request
> File '/root/.buildout/eggs/zope.formlib-4.0-py2.6.egg/zope/formlib/form.py', line 399 in setUpEditWidgets
>    widget = _createWidget(form_field, field, request, iface)
> File '/root/.buildout/eggs/zope.formlib-4.0-py2.6.egg/zope/formlib/form.py', line 329 in _createWidget
>    return component.getMultiAdapter((field, request), iface)
> File '/root/.buildout/eggs/zope.component-3.9.1-py2.6.egg/zope/component/_api.py', line 111 in getMultiAdapter
>    raise ComponentLookupError(objects, interface, name)
> ComponentLookupError: ((<zope.schema._field.Dict object at 0x2894310>,<zope.publisher.browser.BrowserRequest instance URL=http://localhost:8000/workforce/@@index>),<InterfaceClass zope.formlib.interfaces.IInputWidget>, u'')
>
> Help, please!
>
> Thanks,
> Sascha
>
>




More information about the Grok-dev mailing list