[Zope3-dev] problems with <browser:widget>
Adam Groszer
adamg at fw.hu
Wed Aug 24 08:16:53 EDT 2005
I'm having problems with using <browser:widget>.
I have an interface:
class ISzerep(Interface):
name = TextLine(
title=u"Szerep nev",
description=u"Szerep nev",
required=True
)
szemelyek = List(
title=u"Hozzarendelt szemelyek",
description=u"Hozzarendelt szemelyek",
required=False,
value_type=Choice(vocabulary="szemely")
)
If I add a simple add (or edit) form:
<browser:addform
schema="szscreen.interfaces.ISzemely"
content_factory="szscreen.app.Szemely"
label="Uj Szemely"
name="AddSzemely.html"
permission="zope.ManageContent"
set_before_add="name"
>
</browser:addform>
everything goes well, an OrderedMultiSelectWidget is displayed in the
browser by default for the *szemelyek* field.
If I modify the addform configuration by adding the <widget>:
<browser:addform
schema="szscreen.interfaces.ISzemely"
content_factory="szscreen.app.Szemely"
label="Uj Szemely"
name="AddSzemely.html"
permission="zope.ManageContent"
set_before_add="name"
>
<widget field="szerepek" class="zope.app.form.browser.OrderedMultiSelectWidget"/>
</browser:addform>
I get an exception:
Traceback (innermost last):
Module zope.publisher.publish, line 135, in publish
object = request.traverse(object)
Module zope.publisher.browser, line 501, in traverse
ob = super(BrowserRequest, self).traverse(object)
Module zope.publisher.http, line 386, in traverse
ob = super(HTTPRequest, self).traverse(object)
Module zope.publisher.base, line 271, in traverse
subobject = publication.traverseName(
Module zope.app.publication.publicationtraverse, line 46, in traverseName
ob2 = namespaceLookup(ns, nm, ob, request)
Module zope.app.traversing.namespace, line 119, in namespaceLookup
return traverser.traverse(name, ())
Module zope.app.traversing.namespace, line 361, in traverse
name=name)
Module zope.component, line 165, in queryMultiAdapter
return sitemanager.queryMultiAdapter(objects, interface, name, default)
Module zope.component.site, line 75, in queryMultiAdapter
default)
Module zope.interface.adapter, line 481, in queryMultiAdapter
return factory(*objects)
Module zope.app.form.browser.editview, line 64, in __init__
self._setUpWidgets()
Module zope.app.form.browser.editview, line 69, in _setUpWidgets
names=self.fieldNames)
Module zope.app.form.utility, line 224, in setUpEditWidgets
ignoreStickyValues, context)
Module zope.app.form.utility, line 101, in setUpWidget
widget = widget(field.bind(context), view.request)
Module zope.app.form, line 97, in __call__
instance = self._widget_factory(*args)
TypeError: __init__() takes exactly 4 arguments (3 given)
All unit and functional test pass, and the worldcookery's
DynamicSequenceWidget example is working.
In fact I wanted to check MultiCheckBoxWidget, but as
OrderedMultiSelectWidget is not working I'm stuck.
Please help
--
Best regards,
Adam mailto:adamg at fw.hu
--
Quote of the day:
The greatest pleasure I know is to do a good action by stealth, and to have it found out by accident.
- Charles Lamb
More information about the Zope3-dev
mailing list